object.addEventListener的useCapture参数的目的是什么?

Way*_*636 3 javascript internet-explorer addeventlistener

我试图了解在Internet Explorer中添加addEventListener时的行为truefalse做法.根据微软的说法useCapture.如果我添加一个事件,例如:

element.addEventListener('click', function_name, true);
Run Code Online (Sandbox Code Playgroud)

它似乎没有改变任何东西,听众仍然有效.有谁能解释useCapture参数的目的吗?

Fra*_*ser 12

它是可选useCapture参数,指定为以下事件添加事件处理程序的事件阶段:

事件分两个阶段处理:捕获和冒泡.在捕获阶段,事件将被分派到父对象,然后将它们分派到对象层次结构中较低的事件目标.在冒泡阶段,事件首先被分派到目标元素,然后被分派到父元素.您可以为任一事件阶段注册事件处理程序.

true 为捕获阶段注册事件处理程序.

false 注册冒泡阶段的事件处理程序.

您可以在此处阅读eventPhase文档:http://msdn.microsoft.com/en-gb/library/ie/ff974944( v = vs.85).aspx

编辑:

请阅读以下内容,其中描述了通过冒泡和捕获定义的事件顺序以及明确的示例.http://www.quirksmode.org/js/events_order.html

  • 我不确定你是什么意思.如果将`useCapture`设置为true,则事件使用捕获阶段,如果为false(默认值),则使用冒泡阶段.这意味着在我提供的链接中明确定义......无论如何,我添加了另一个更清楚解释的链接.基本上它是触发事件的执行顺序. (2认同)