jQuery removeClass除了当前的id

时间:2011-01-20 17:17:34

标签: javascript jquery

[Live Demo]

我有一个导航菜单,在悬停时显示某种状态,并在不同的div中显示文字。

如果用户没有与菜单交互,div会自行循环,导航菜单会显示相应的悬停状态,就像用户正在进行交互一样。

然而,由于它正在循环,如果用户将鼠标悬停在导航菜单上的另一个链接上,我需要在之前突出显示的元素上删除Class。

如何编写,"如果id目前不是id,则在所有其他导航链接上删除Class(' hoverBold')"

5 个答案:

答案 0 :(得分:6)

请看jQuery not()

像...一样的东西。

$('.myMenu').hover(function() {
    $('.myMenu').not(this).removeClass('hoverBold');
});

答案 1 :(得分:2)

只需将其添加到hoverIn:

links.removeClass('hoverBold');

您不需要将该类从其他元素中删除,因为当前元素a:hover.sliderLinkshoverBold共享样式

工作示例:http://www.jsfiddle.net/MXSkj/1/

答案 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),则该对象将从列表中删除。