昨天我在這段代碼發現了潛在的錯誤使用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
從一個元素解綁?如果用戶喜歡,我們必須重新綁定?我不確定我喜歡那樣。 –