昨天我在这段代码发现了潜在的错误使用jQuery:可能jQuery的错误 - 事件仍然被改变的类元素上触发
$(document).ready(function() {
$('.likedLink').click(function(){
return false;
});
$('.likes').click(function(){
var id = $(this).attr('id');
var currentLike = id;
id = id.replace('p','');
$.ajax({
type: "POST",
url: "/posts/like",
data: "id=" + id,
success: function(like){
$('#' + currentLike).html(like).removeClass('likes').addClass('likedLink');
}
});
return false;
});
});
的后收到多少回,并将当前点击链接的HTML来新的价值。然后我改变元素上的类以避免进一步点击/ AJAX。
现在,代码工作,它收到新的HTML,甚至正确地改变了类,但AJAX事件仍然被解雇,当用户/我点击它,但它是一个不同的类,所以它不应该被解雇!
任何想法,或者这是一个与jQuery的错误?
顺便说一句,我通过改变.html()
到.replaceWith("<p>" + like + "</p>")
固定代码,但我很好奇这是怎么发生的
+1。取消绑定是有原因的:) – naveen
从一个元素解绑?如果用户喜欢,我们必须重新绑定?我不确定我喜欢那样。 –