如果类不是.active,则jQuery动画

时间:2011-10-21 15:26:31

标签: jquery jquery-animate

我正在尝试设置导航的背景颜色,我可以使用

$(".mainNav li a").hover(function () {
    $(this).stop().animate({ backgroundColor: "#EF4D23" }, 500);
}, function () {
    $(this).stop().animate({ backgroundColor: "#303030" }, 500);
});

如果标签的类不是.active,我接下来要做的只是做这个动画,所以我正在尝试:

$(".mainNav li a").hover(function () {
    if ($(this).not(".active")) {
        (function () {
            $(this).stop().animate({ backgroundColor: "#EF4D23" }, 500);
        }, function () {
            $(this).stop().animate({ backgroundColor: "#303030" }, 500);
        });
    }
});

但它没有做任何事情或给我一个错误。

感谢您的帮助。

3 个答案:

答案 0 :(得分:6)

您希望使用.is()而非.not().not()将过滤元素,.is()根据是否与选择器匹配返回布尔值。

$(".mainNav li a").hover(function () {
    if (!$(this).is(".active")) {
       (function () {
            $(this).stop().animate({ backgroundColor: "#EF4D23" }, 500);
        }, function () {
            $(this).stop().animate({ backgroundColor: "#303030" }, 500);
        });
     }
});

答案 1 :(得分:4)

尝试以下方法:

    $(".mainNav li a").not(".active").hover(function () {
...code    
    });

答案 2 :(得分:0)

  

if ($(this).not('active').length > 0) {