false in addEventListener?

false in addEventListener?

本文关键字:addEventListener in false      更新时间:2023-09-26

在下面的行中:第三个参数保持为false。这个属性是什么??

var el = document.getElementById("outside");
el.addEventListener("click", modifyText, false);

它控制事件是在DOM树中向上还是向下冒泡。

单击下面示例中的three(并链接到此处)。然后将false更改为true并重复。

如果将useCapture设置为false,它将在树上冒泡,您将获得x3, x2, x1;如果将其设置为true,它将冒泡,然后获得x1, x2, x3

参见:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <div id="x1">One
    <div id="x2">Two
      <div id="x3">Three
      </div>
    </div>
  </div>
  <script>
    function me() { alert(this.id); };
    var divs = document.getElementsByTagName('div');
    for (var i = 0; i < divs.length; i++) {
      divs[i].addEventListener('click', me, false);
    }
  </script>
</body>
</html>

这是useCapture参数。来自文档

useCapture可选

如果为true,useCapture表示用户希望启动捕获。启动捕获后,指定类型的所有事件都将被调度到已注册的侦听器,然后再被调度到DOM树中其下的任何EventTarget。通过树向上冒泡的事件不会触发指定使用捕获的侦听器。有关详细解释,请参阅DOM级别3事件。如果未指定,useCapture默认为false。

在此处阅读有关此主题的更多信息。

根据本文档,是否使用"捕获"

如果为true,useCapture表示用户希望启动捕获。启动捕获后,指定类型的所有事件都将被调度到已注册的侦听器,然后再被调度到DOM树中其下的任何EventTarget。通过树向上冒泡的事件不会触发指定使用捕获的侦听器。有关详细解释,请参阅DOM级别3事件。如果未指定,useCapture默认为false。注意:useCapture仅在主要浏览器的最新版本中才成为可选;例如,在Firefox 6之前,它不是可选的。您应该提供此参数以获得最广泛的兼容性。