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