-2

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

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

3 回答 3

2

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

three在下面的示例中单击(并在此处链接)。然后更改falsetrue重复。

如果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>
于 2013-07-24T10:13:35.393 回答
2

那是useCapture参数。从文档

useCapture 可选的

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

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

于 2013-07-24T10:01:47.263 回答
0

根据文档,是否使用“捕获”

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

于 2013-07-24T10:01:47.127 回答