我有一个导航菜单,在悬停时显示某种状态,并在不同的div中显示文字。
如果用户没有与菜单交互,div会自行循环,导航菜单会显示相应的悬停状态,就像用户正在进行交互一样。
然而,由于它正在循环,如果用户将鼠标悬停在导航菜单上的另一个链接上,我需要在之前突出显示的元素上删除Class。
如何编写,"如果id目前不是id,则在所有其他导航链接上删除Class(' hoverBold')"
答案 0 :(得分:6)
请看jQuery not()
。
像...一样的东西。
$('.myMenu').hover(function() {
$('.myMenu').not(this).removeClass('hoverBold');
});
答案 1 :(得分:2)
只需将其添加到hoverIn:
links.removeClass('hoverBold');
您不需要将该类从其他元素中删除,因为当前元素a:hover.sliderLinks
与hoverBold
共享样式
答案 2 :(得分:0)
这样的东西?...
$('#nav li').mouseover(function(){
//remove from others
$('#nav li').removeClass('hoverBold');
//add to this
$(this).addClass('hoverBold')
});
答案 3 :(得分:0)
执行此操作的一种方法是删除所有链接上的hoverBold类,并将其添加到当前链接上。
$(".sliderLinks").hover(function(){
$(".sliderLinks").removeClass("hoverBold");
$(this).addClass("hoverBold");
},function(){
//..resume the automatic behaviour
});
其他方法是在传递给$(".sliderLinks").each()
的函数中使用。is()方法来查看当前元素是否
答案 4 :(得分:0)
查看.filter
$(".myMenu").click(function() {
// store current object
var that = this;
$(".myMenu").filter(function() {
// check object in list is not current object
return this != that;
}).removeClass("hoverBold");
});
基本上,您传递过滤功能,并测试每个对象。如果过滤器返回false(即this == that),则该对象将从列表中删除。