jQuery:一旦单击元素就删除类

时间:2010-02-05 17:38:39

标签: php jquery

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

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

html:

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

jQuery:

$(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 个答案:

答案 0 :(得分:2)

仅仅因为您更改了类并不意味着从链接中删除了click事件处理程序。您需要手动解除绑定,或者只需添加if语句来检查链接所在的类。

或使用live函数绑定click事件。

答案 1 :(得分:1)

不是正面的 - 但你可能需要这样做(使用$ .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;
    });
});