更改类属性后定位元素不起作用

时间:2014-10-18 18:34:24

标签: jquery dom click

我试图定位一个装有dom的元素,当点击它时会更改它的类,然后点击同一个项目后它应该发出警告,但警告会在第一个之后出现点击旧班级

HTML

<div class="top_favorites">
<a href="#" class="addToFav">click</a>
</div>

js inside document ready

$("a.addToFav").click(function(e){
    e.preventDefault();

    $(this).attr("class","addedToFav")
});

$(".top_favorites").on("click","a.addedToFav",function(e){
    alert("fdgdfd");
    e.preventDefault();

    $(this).attr("class","addToFav")
});

实时代码http://jsfiddle.net/p6s0oac4/

1 个答案:

答案 0 :(得分:1)

click事件冒泡,因此在更改类后,您的第二个单击事件处理程序也会执行。

以下代码可以使用并且更加一致:

$(".top_favorites").on("click","a.addToFav",function(e){
    e.preventDefault();

    $(this).attr("class","addedToFav")
});

$(".top_favorites").on("click","a.addedToFav",function(e){
    alert("fdgdfd");
    e.preventDefault();

    $(this).attr("class","addToFav")
});

演示:http://jsfiddle.net/p6s0oac4/1/