Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 为什么一本书说DOM事件流既有捕获又有冒泡?然后赢了';事件不会发生两次吗?_Jquery_Events_Event Bubbling_Event Capturing_Event Flow - Fatal编程技术网

Jquery 为什么一本书说DOM事件流既有捕获又有冒泡?然后赢了';事件不会发生两次吗?

Jquery 为什么一本书说DOM事件流既有捕获又有冒泡?然后赢了';事件不会发生两次吗?,jquery,events,event-bubbling,event-capturing,event-flow,Jquery,Events,Event Bubbling,Event Capturing,Event Flow,Zakas的《专业Javascript》一书说 1) IE使用事件冒泡 2) Netscape使用事件捕获 3) DOM事件流首先是捕获,然后是冒泡 那么,事件处理程序不会被调用两次吗?这个DOM事件流是什么,它是DOM级别2事件处理吗 据我所知,以下是真的吗 a) IE 6、7、8都使用冒泡 b) FF、Chrome、Safari和Opera都使用捕获功能? c) jQuery通过使其“冒泡”使一切都相同,也许可以对事件传播有所帮助也许可以对事件传播有所帮助,因此简单的答案是addEventL

Zakas的《专业Javascript》一书说

1) IE使用事件冒泡
2) Netscape使用事件捕获
3) DOM事件流首先是捕获,然后是冒泡

那么,事件处理程序不会被调用两次吗?这个DOM事件流是什么,它是DOM级别2事件处理吗

据我所知,以下是真的吗

a) IE 6、7、8都使用冒泡
b) FF、Chrome、Safari和Opera都使用捕获功能?

c) jQuery通过使其“冒泡”使一切都相同,也许可以对事件传播有所帮助

也许可以对事件传播有所帮助

,因此简单的答案是addEventListener()调用可以有一个参数来表示是希望在捕获阶段还是冒泡阶段触发。@Jian Lin:触发事件时,事件从DOM树的根向下传播到目标元素(捕获),然后再次从目标元素向上传播到根(冒泡)。这就是所谓的DOM级别2事件模型(w3c标准)。旧的事件模型称为DOM级别0事件模型,只执行冒泡操作。IE不支持DOM级别2事件(如果我记得清楚的话,它具有类似的专有行为;不确定IE8是否修复了此问题)。由于浏览器之间的差异(有些支持一种模式,有些支持另一种模式),jQuery抽象了这个东西,只做冒泡处理。@Jian Lin:关于addEventListener调用,我不会再继续这样做了。IE为此定义了自己的名为attachEvent的方法(但IE8不确定,也许他们在这个版本中修复了它)。问题是,事件模型是标准的,但是不同的浏览器有不同的遵从性级别。所以简单的回答是,addEventListener()调用可以有一个参数来表示是希望在捕获阶段还是冒泡阶段被触发。@Jian Lin:当事件被触发时,事件从DOM树的根向下传播到目标元素(捕获),然后再次从目标元素向上传播到根(冒泡)。这就是所谓的DOM级别2事件模型(w3c标准)。旧的事件模型称为DOM级别0事件模型,只执行冒泡操作。IE不支持DOM级别2事件(如果我记得清楚的话,它具有类似的专有行为;不确定IE8是否修复了此问题)。由于浏览器之间的差异(有些支持一种模式,有些支持另一种模式),jQuery抽象了这个东西,只做冒泡处理。@Jian Lin:关于addEventListener调用,我不会再继续这样做了。IE为此定义了自己的名为attachEvent的方法(但IE8不确定,也许他们在这个版本中修复了它)。所以问题是事件模型是一个标准,但是不同的浏览器有不同的遵从性级别。