首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery .removeClass问题

jQuery .removeClass问题
EN

Stack Overflow用户
提问于 2013-01-30 05:33:59
回答 1查看 83关注 0票数 1

我在我的网站上使用了一个词汇表,它利用了一些显示/隐藏功能和一个.removeClass属性。

代码语言:javascript
运行
复制
$(document).ready(function() {
    $("#glossary-container li").click(function() { 
        $(".glossary-content > div").hide();
        var id = $(this).attr("id").replace('-link', ''); 
        $('#' + id).show(); 

        $(".glossaryUL li").each(function() { 
            $(this).click(function() {
                $(".glossaryUL li").removeClass("selected");                       
                $(this).addClass("selected"); 
                elementClick = $(this).attr("id"); 
            });
        });
    }); 

    $('.coolbox').hide(); 

    $('.clicker').click(function(event){ 
        event.preventDefault(); 
        $($(this).attr('href')).toggle(300); 
    });
});

在页面加载时,通过内联样式将列表项目字母"A“和UL类别".glossaryUL”设置为"selected“。

代码语言:javascript
运行
复制
<li id="a-link" class="selected">A</li>

当您单击另一个字母时,将显示".glossary-content“类中的术语,但.removeClass属性不会从字母"A”中删除该类。

但是,如果您随后单击了另一个字母(页面加载后的第二次单击),则.removeClass属性将运行并移除该类,并将其应用于正确的字母...

我不明白它为什么要这样做。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2013-01-30 05:41:23

您不需要将单击事件分配包装到each中,jQuery已经为匹配该选择器的每个元素分配了click事件(因为您使用了一个类作为选择器)。我怀疑你有重复的点击事件冲突。试着这样做:

代码语言:javascript
运行
复制
$(".glossaryUL li").click(function() { 
        $(".glossaryUL li").removeClass("selected");                       
        $(this).addClass("selected"); 
        elementClick = $(this).attr("id"); 
    });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14592719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档