我正在尝试设置导航的背景颜色,我可以使用
$(".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);
});
}
});
但它没有做任何事情或给我一个错误。
感谢您的帮助。
答案 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) {