removeClass不起作用

时间:2013-01-25 00:31:49

标签: javascript jquery

我正在努力为我的生活找出如何在点击另一个链接时删除一个类。我想要它所以它只突出显示所选的特定区域,但删除类不会删除该类。因此它会按类underNavselected中的指定保持突出显示。有人可以帮忙吗?

这一切都在一个页面上,而不是链接到其他文档。每次点击都会隐藏和取消隐藏内容。

jQuery(document).ready(function() {
    jQuery(".toTop").hide();
    jQuery(".aboutHeader").hide();
    jQuery(".LAM").hide();
    jQuery(".WID").hide();
    jQuery(".MyG").hide();
    jQuery("#LAMlink").live("click", function()
    {
        jQuery(this).addClass("underNavselected");
        jQuery(".LAM").slideToggle(500);
        jQuery(".WID").hide();
        jQuery(".MyG").hide();
        jQuery("#MyGlink", "#WIDlink").removeClass("underNavselected");
    });
    jQuery("#WIDlink").live("click", function()
    {
        jQuery(this).addClass("underNavselected");
        jQuery(".WID").slideToggle(500);
        jQuery(".LAM").hide();
        jQuery(".MyG").hide();
        jQuery("#LAMlink", "#MyGlink").removeClass("underNavselected");
    });
    jQuery("#MyGlink").live("click", function()
    {
        jQuery(this).addClass("underNavselected");
        jQuery(".MyG").slideToggle(500);
        jQuery(".LAM").hide();
        jQuery(".WID").hide();
        jQuery("#LAMlink", "#WIDlink").removeClass("underNavselected");
    });
});

3 个答案:

答案 0 :(得分:2)

您偶然使用descendant selector您的代码与“#LAMlink #WIDlink”相同,这意味着您正在寻找具有LAMlink祖先的WIDlink

所以正确的解决方案是改变:

jQuery("#LAMlink", "#WIDlink")

jQuery("#LAMlink, #WIDlink")

注意我的情况完全相同string.

答案 1 :(得分:1)

这样做:

jQuery("#MyGlink, #WIDlink").removeClass("underNavselected");

答案 2 :(得分:1)

改变这个:

  jQuery("#MyGlink", "#WIDlink").removeClass("underNavselected");

对此:

  jQuery("#MyGlink, #WIDlink").removeClass("underNavselected");

在每个地方你都这样做。

选择器应该是包含逗号的单个字符串。你的方式jQuery将寻找匹配第一个选择器的元素,这些元素是与第二个选择器匹配的元素的后代。