在jQuery中,我需要做一个if语句,看看$this是否不包含类'.selected'。

$(".thumbs").hover(function(){

$(this).stop().fadeTo("normal", 1.0);
},function(){
$(this).stop().fadeTo("slow", 0.3);

});

基本上,当这个函数运行(悬停),我不想执行淡入如果类。Selected '被附加到div中,这将意味着图像将处于完全不透明度,以表示它被选中。在谷歌上搜索没有运气,即使这是一个如何使用IF语句的简单问题…


当前回答

当你检查一个元素是否有类时,确保你没有不小心在类名中放了一个点:

<div class="className"></div>

$('div').hasClass('className');
$('div').hasClass('.className'); #will not work!!!!

在盯着我的代码看了很长时间之后,我意识到我已经做到了。像这样的一个小错字,我花了一个小时才弄清楚我写错了什么。检查您的代码!

其他回答

使用“not”选择器。

例如,不要:

$ (" .thumbs ") .hover ()

try:

$(“.thumbs:不(.selected)”).hover ()

当你检查一个元素是否有类时,确保你没有不小心在类名中放了一个点:

<div class="className"></div>

$('div').hasClass('className');
$('div').hasClass('.className'); #will not work!!!!

在盯着我的代码看了很长时间之后,我意识到我已经做到了。像这样的一个小错字,我花了一个小时才弄清楚我写错了什么。检查您的代码!

您还可以使用addClass和removeClass方法在选项卡等项之间进行切换。

e.g.

if($(element).hasClass("selected"))
   $(element).removeClass("selected");

如果不是在事件内部使用if,而是在应用选择类时解除事件绑定,如何? 我猜你在你的代码中添加了类,所以解绑定事件看起来像这样:

$(element).addClass( 'selected' ).unbind( 'hover' );

唯一的缺点是,如果您从元素中删除所选类,则必须再次将其订阅到hover事件。

我想作者想要的是:

$(this).not('.selected')