我在一个项目上使用jQuery 2.1.0,我对toogleClass()有一些奇怪的问题,这里是我的代码: $('.options-item-label').on('click', function(){ $(this).toggleClass('option-opend');}); 关于jsfiddle DEMO的演示 它不适用于
$('.options-item-label').on('click', function(){ $(this).toggleClass('option-opend'); });
关于jsfiddle DEMO的演示
它不适用于chrome,但可以在我的iPad上运行,有人可以提供帮助吗?
谢谢
在这种情况下,您应该更好地将事件侦听器绑定到复选框本身以防止双击事件:$('.options-item-label').on('click', ':checkbox', function(e) { $(e.delegateTarget).toggleClass('option-opend'); });
它发生的原因很简单.标签排序为相应的输入元素生成另一个事件.由于jQuery on方法在冒泡阶段绑定事件,当第二个“虚拟”事件从复选框传播到标签时,它会再次触发事件处理程序.因此这个问题.
演示:http://jsfiddle.net/x3a32/2/