onchange事件是否传播?

时间:2008-11-05 13:01:51

标签: javascript html dom

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

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

4 个答案:

答案 0 :(得分:37)

According to specificationchangesubmitreset应该冒泡,focusblur不应该冒泡。

此行为在除IE<之外的所有Web浏览器中都正确实现。 9,即changesubmitreset在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中选择列表中的选项(好吧,你可以,但它不会触发)