Jquery 特殊情况下的选择器
我正在使用:Jquery 特殊情况下的选择器,jquery,Jquery,我正在使用: $(".header.nav.nav-user").click(function(){}); 但是,当我将css更改为“.header.nav.disable.nav user”时,我不想触发单击事件 但是在这种情况下,$(“.header.nav.nav user”)也会在css更改为”.header.nav.disable.nav user“时触发 我怎样才能排除这种情况 我试过像: $(".header.nav.nav-user :not(.disable)") 及 但两
$(".header.nav.nav-user").click(function(){});
但是,当我将css更改为“.header.nav.disable.nav user
”时,我不想触发单击事件
但是在这种情况下,$(“.header.nav.nav user”)
也会在css更改为”.header.nav.disable.nav user“
时触发
我怎样才能排除这种情况
我试过像:
$(".header.nav.nav-user :not(.disable)")
及
但两次都没有达到预期的效果
请告诉我怎么做
谢谢你的帮助!谢谢
更新:情况是
有时是:(我想触发点击事件)
有时是:(我不想触发点击事件)
更改是使用其他javascript,而不是更改代码。试试这个
$(".header.nav.nav-user").not(":disable")
添加一个disable类时,需要添加disabled属性 例如:
$('.btn').click(function () {
alert('clicked');
$('.btn').addClass('disable');
$('.disable').attr('disabled', 'disabled');
});
这将禁用与“disable”类的链接,您的正确位置如下:
$(".header.nav.nav-user :not(.disable)")
除了导航用户和:not之间不应有任何空间
$(".header.nav.nav-user:not(.disable)")
$('.disable')。在(“单击”,函数(){return false})上;应该这样做。在这里工作很好:,可能是传播问题吗?是div的元素后代,单击事件将冒泡?这可能是因为您可能正在应用。请禁用类而不是禁用,否则,如果检查无误,请禁用代码。您的类但是在上面的JSFIDLE中,如果我删除
.not('.disable')
,那么click事件也不起作用,而它应该起作用。因此,您可以每次传递标志变量来检查选择器是否更改它而不触发。触发部分在if条件下使用,当flag true函数触发,否则no@SAM奥巴马的解决方案是正确的。移除空间,它应该可以正常工作。:)虽然我不认为它会工作,如果禁用类它添加动态。谢谢,但也许我描述没有真正清楚,我会更新我的问题
$('.btn').click(function () {
alert('clicked');
$('.btn').addClass('disable');
$('.disable').attr('disabled', 'disabled');
});
$(".header.nav.nav-user :not(.disable)")
$(".header.nav.nav-user:not(.disable)")