代码之家  ›  专栏  ›  技术社区  ›  superUntitled

jQuery:单击元素后删除类

  •  1
  • superUntitled  · 技术社区  · 16 年前

    我被一个jQuery小问题困住了。我有一个从php循环生成的链接集合(超过50个)。当用户单击链接时,将调用jQuery加载事件,并将php/mysql脚本(在下面的示例中称为page.php)加载到页面上的空div中。

    我希望将类(“.classy”)从<a>标记并替换为另一个类(“newclass”)。这样,信息仅在第一次单击时加载。

    <a class='classy' name='marvin'>Click to toggle info</a>
    <div id='marvin'></div>
    

    $(document).ready(function(){
        $(".classy").click(function(){
            var foo = $(this).attr("name");
            $("#"+foo).load("page.php?id="+foo).slideToggle('fast'); 
            $(this).removeClass('classy');
            $(this).addClass('newclass');
            return false;
        });
    });
    

    谢谢

    2 回复  |  直到 16 年前
        1
  •  1
  •   Drew Wills    16 年前

    不是正面的--但您可能需要这样做(使用$.live()):

    $(document).ready(function(){
        $(".classy").live('click', function(){
            var foo = $(this).attr("name");
            $("#"+foo).load("page.php?id="+foo).slideToggle('fast'); 
            $(this).removeClass('classy').addClass('newclass');
            return false;
        });
    });
    
        2
  •  2
  •   Marek Karbarz    16 年前

    仅仅因为你换了班并不意味着 click 事件处理程序已从链接中删除。您需要手动解除绑定,或者只添加一个 if 语句,该语句检查链接的类。

    或使用 live 函数来绑定 点击 事件

    推荐文章