搜尋

首頁  >  問答  >  主體

javascript - 父元素綁定click,子元素在不綁定click的情況下如何避免觸發父元素click?

HTML:

<p id="container">
  <p id="inner">

  </p>
</p>

JS:

document.getElementById('container').addEventListener('click',function () {
  document.getElementById('inner').style.display = "none";
});

這時我點選子元素,也會消失。該如何避免這種情況呢?我不想也讓子元素綁定click事件的方法。

扔个三星炸死你扔个三星炸死你2770 天前890

全部回覆(3)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-12 09:24:56

    document.getElementById('container').addEventListener('click',function (e) {
      document.getElementById('inner').style.display = "none";
      e.stopPropagation();
    }, true);
    
    1. addEventListener 傳遞第三個參數 true。使用事件捕獲。

      • https://developer.mozilla.org...

    2. e.stopPropagation() 阻止事件傳播。

      • https://developer.mozilla.org...

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-06-12 09:24:56

    https://jsfiddle.net/g5u7qrrd/6/

    雷雷

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-06-12 09:24:56

    給子元素style加個pointer-events: none;直接忽略滑鼠事件。 IE可能需要處理下相容。

    回覆
    0
  • 取消回覆