代码之家  ›  专栏  ›  技术社区  ›  Anna_B

JavaScript函数仅用于一个div,而不是整个文档

  •  0
  • Anna_B  · 技术社区  · 3 年前

    为了一个 Box2D

    (() => {
      let lock = 0;
      const prevent = e => {
        if (lock !== 2)
          return;
        e.preventDefault();
        e.stopPropagation();
      };
      const unlock = e => {
        prevent(e);
        setTimeout(() => lock = 0);
      };
      addEventListener('click', prevent, true);
      addEventListener('pointerdown', e => lock = 1, true);
      addEventListener('pointermove', e => lock && (lock = 2), true);
      addEventListener('pointerup', unlock, true);
      addEventListener('pointercancel', unlock, true);
    })();
    #physics {
      width: 300px;
      height: 300px;
      background-color: blue;
    }
    <div id="physics"></div>

    目前,它适用于整个文档。但我想把它留到最后一天 <div id=“physics”></div>

    怎么可能编码呢?

    非常感谢你的帮助!

    2 回复  |  直到 3 年前
        1
  •  2
  •   Afshin Mobayen Khiabani    3 年前

    您需要先选择div,然后将处理程序添加到该div:

    let div = document.getElementById('physics');
    div.addEventListener('click', prevent, true);
    div.addEventListener('pointerdown', e => lock = 1, true);
    div.addEventListener('pointermove', e => lock && (lock = 2), true);
    div.addEventListener('pointerup', unlock, true);
    div.addEventListener('pointercancel', unlock, true);
    
        2
  •  1
  •   Donggi Kim    3 年前

    尝试

    document.getElementById('physics').addEventListener('click', ...);