【问题标题】:Trouble with adding/removing a class in Jquery在 Jquery 中添加/删除类的问题
【发布时间】:2011-03-09 22:08:25
【问题描述】:

我正在尝试制作一个导航菜单,当单击链接时,将内容加载到隐藏的 div 中,然后显示隐藏的 div,然后更改列表项的类。如果再次单击相同的链接,该类将恢复为之前的状态,然后内容 div 将被隐藏。

这是一个网址 查看源代码:http://www.scottjraney.com/javatest/

这里是 Jquery

$(document).ready(function(){

    $("a.1").click(function(){
        $("div#hidden").load("/javatest/content1.html");
        $("div#hidden").slideDown();
        $("a").removeClass("1").addClass("1-change");
    });
    $("a.1-change").click(function(){
        $("div#hidden").slideUp();
        $("a").removeClass("1-change").addClass("1");
    }); 
});

我怎样才能让它工作?

【问题讨论】:

    标签: jquery class add


    【解决方案1】:

    这是因为您使用的是 .click() 函数而不是 .live('click')。 live() 方法允许任何元素(甚至是将来创建的元素)附加该侦听器。

    当页面加载时,没有“1-change”元素,所以它没有任何东西可以附加监听器。

    【讨论】:

    • 感谢您的帮助,我是 jquery 的新手(我确信这很明显)。我继续添加 .live('click') 函数并将其应用于其他链接,它似乎接近工作了。但点击几下链接后,它开始变得奇怪。这是一个网址scottjraney.com/javatest
    • 也因为你使用的是$("a"),而是使用$(this)
    【解决方案2】:

    尽量不要以数值开头你的类名。 FF 和 IE 在这方面曾经失败过。它并非严格无效 - 但可能会导致问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      相关资源
      最近更新 更多