Вчера я обнаружил потенциальную ошибку с 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-ing.
Теперь код сработал, получил новый HTML-код и даже правильно изменил класс, но событие AJAX по-прежнему вызывалось, когда пользователь/ Я щелкнул по нему, но это был другой класс, поэтому он не должен был запускаться!
Есть идеи, или это ошибка в jQuery?
Кстати, я исправил код, изменив.html()
до .replaceWith("<p>" + like + "</p>")
но мне было очень любопытно, как это происходит