2008-11-05 55 views
36

我使用事件委托侦听DOM中较低的事件,但它不适用于选择框上的onchange事件。 onchange事件是否会传播或冒泡DOM?onchange事件是否传播?

谷歌搜索未能找到确凿的答案。

回答

35

According to specification“改变”,“提交”,“重置”应该冒泡,“焦点”和“模糊”不应该冒泡。

此行为是正确实现在所有web浏览器除了IE < 9,即,改变,提交,复位做适当气泡在IE> = 9

参见https://stackoverflow.com/a/4722246/227299关于旧版本的IE

一个jQuery解决方法
+2

IE <9,即9 - ok – 4esn0k 2012-06-17 15:36:13

+2

测试用例:http://jsfiddle.net/5x8tk/ – 2012-11-23 16:44:13

-2

不知道如果我得到的问题,但如果你是这个意思,那么没有。

<div id="foo"> 
    <select onchange="alert('hi');"> 
    <option>Hello</option> 
    <option>World</option> 
    </select> 
</foo> 

其中div id =“foo”会有一个onchange事件...从选择列表冒泡?


上与此相关的

,只是一个供参考,你不能将事件附加到(当然,你可以,但它不会闪光)在IE中选择列表中的选项

0

我的天堂”对此我已经处理了很长一段时间,但上次我做了,我记得Firefox识别了<SELECT>元素上的事件,而IE6只识别了<OPTION>标签上的事件。就目前我所记得的。

IE7当时没有出来。

因此,如果是这种情况,不要将事件处理函数内联编写并将其应用到DOM准备上,否则将会产生大量污染的重复代码。

+0

没有IE浏览器,因为它并不在所有登记在

23

在jQuery中1.4+变化所有浏览器中的事件泡泡,包括IE。

$('div.field_container').change(function() { 
    // code here runs in all browers, including IE. 
});