当前位置 : 主页 > 网页制作 > JQuery >

jQuery toggleClass在chrome中不起作用(jQuery 2.1.0)

来源:互联网 收集:自由互联 发布时间:2021-06-15
我在一个项目上使用jQuery 2.1.0,我对toogleClass()有一些奇怪的问题,这里是我的代码: $('.options-item-label').on('click', function(){ $(this).toggleClass('option-opend');}); 关于jsfiddle DEMO的演示 它不适用于
我在一个项目上使用jQuery 2.1.0,我对toogleClass()有一些奇怪的问题,这里是我的代码:

$('.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/

网友评论