我想做这个条件:
if ( this div has NO class firing on) {
// do nothing when click on it
} // else do something
是否可以?
我倾向于这样做,因为它是编码与另一个学生团队合作的限制。但是,如果我的问题令人困惑和不清楚,我很抱歉。
我不确定我是否正确解释了您的问题,但我相信只有当触发事件的元素具有某个类时,您才想执行某个回调。在这种情况下,您可以在回调中执行以下操作:
$("#someId").on("click", function () {
if (!$(this).hasClass("someClass"))
return false;
// Do your stuff here, if we get here, the element has the desired class
});
使用此解决方案,您将捕获事件,但如果元素没有您感兴趣的类,您将什么也不做并提前转义回调。
更新:
如果您不是特别寻找任何课程,只是想确保它根本没有任何课程,那么您可以这样做:
$("#someId").on("click", function () {
if ($(this).prop("class").length === 0)
return false;
// Do your stuff here, if we get here, the element has no class
});
您可以委托并检查元素是否有一个类(不是空的) - 现在它只会在 div 有一个类时触发
$('parentelement').on('click','div:not([class=""])[class]',function(){
});
你做错了。将类添加到div,你想操作,然后你可以使用选择器,或者hasClass。
这是对问题的非常模糊的描述,这是一个非常笼统的答案:
$('div').each(function() {
if (!this.hasAttribute('class')) { //has no class
$(this).off(); //requires the use of on(), but removes all event handlers
}
$(this).on('click', ...)
});
我不明白你的问题。但我认为你想要这样的东西。
if($(this).hasClass('anyClass')){
//do nothing
return false;
}else{
//Do something
}
注意:您试图以错误的方式完成它。尝试找出一些替代方法。