我正在使用事件委派来侦听DOM中较低的事件,但它不适用于选择框上的onchange事件。 onchange事件是否会传播或冒泡DOM?
谷歌搜索未能找到确凿的答案。
答案 0 :(得分:37)
According to specification,change
,submit
,reset
应该冒泡,focus
和blur
不应该冒泡。
此行为在除IE<之外的所有Web浏览器中都正确实现。 9,即change
,submit
,reset
在IE> = 9中正确冒泡。
有关旧IE版本的jQuery解决方法,请参阅https://stackoverflow.com/a/4722246/227299
答案 1 :(得分:23)
在jQuery 1.4+中,更改事件在所有浏览器中都会出现泡沫,包括IE。
$('div.field_container').change(function() {
// code here runs in all browers, including IE.
});
答案 2 :(得分:0)
我有一段时间没有处理过这个问题,但是上次我做了,我记得Firefox在<SELECT>
元素上识别了该事件,而IE6只识别了<OPTION>
标签上的事件。据我所知。
IE7当时没有出局。
因此,如果是这种情况,那么更好的做法是不要内联编写事件处理程序并将其应用于DOM就绪,以免你有大量污染重复的代码。
答案 3 :(得分:-2)
不确定我是否得到了这个问题,但如果你的意思是这样,那就没有。
<div id="foo">
<select onchange="alert('hi');">
<option>Hello</option>
<option>World</option>
</select>
</foo>
div id =“foo”会有一个onchange事件......从选择列表中冒出来?
在相关的说明中,只是一个FYI你不能将事件附加到IE中选择列表中的选项(好吧,你可以,但它不会触发)