2013-01-04 118 views
0

虽然做一些理智的测试我注意到以下change事件绑定作品:带选择元素的jQuery事件委托?

$("body").on("change","input", function(){console.log(1)}) 

虽然on事件绑定并不:

$("body").on("change","select", function(){console.log(1)}) 

是否有这种不一致的任何解决办法或解释?

+0

你能解释它更好?也许有一些演示。 –

+0

它是特定于特定的浏览器吗? –

+2

为我工作在铬http://jsfiddle.net/eHRCD/ –

回答

0

使用Developer Toolbar的Elements选项卡中的Event Listeners面板,我发现了根本原因。有两个委托更改事件绑定到相同的select元素,该元素被包装在div容器中以进行造型。绑定到内部容器的事件返回false,这会停止传播到绑定到外部容器的事件。我意识到内部绑定是过度杀毒,所以我删除它来解决问题。

参考