У меня есть модал, полный комментариев.Мой код принимает массив JSON и публикует первый индекс в качестве исходного сообщения, затем перебирает остальные в качестве ответов и создает прослушиватели AJAX для каждого сообщения.Когда я нажимаю кнопку AJAX, работают только оригинальные кнопки сообщений, а когда я нажимаю кнопку, как на исходном сообщении, кажется, что она срабатывает 4 раза (количество ответов в моем примере).
![enter image description here](https://i.stack.imgur.com/A5vs8.jpg)
Я попытался переместить код для прослушивателей AJAX и удалил прослушиватель AJAX для исходных сообщений, но он все еще работает и отключается несколько раз.
Это моя функция, которая генерирует модель ...
function ShowCommentsModal (res)
{
$('.modal').modal('show')
//Set HTML for main comment here
$('.ModalPost').html(
'<div id="Post"><div id="UserInfoDiv">// HTML CODE FOR ORIGINAL POST
);
// REMOVED CODE FOR REPOST AJAX HERE
//Set HTML for comments here
res.shift();
$('.CommentArea').html(''); // Clear HTML
$.each(res, function(index) { // Start of foreach loop
$('.CommentArea').html(
$('.CommentArea').html() +
// COMMENT HTML HERE
)
$('[data-likes]').click(function() {
var buttonid = $(this).attr('data-likes');
$.ajax({
type: "POST",
url: "api/likes?id=" + $(this).attr('data-likes'),
processData: false,
contentType: "application/json",
data: '',
success: function(r) {
var res = JSON.parse(r)
console.log(r)
$("[data-likes... //update like button')
},
error: function(r) { console.log(r) }
}); // END OF AJAX
}); //END OF DATA-LIKES CLICK FUNCTION
$('[data-comment]').click(function() {
var buttonid = $(this).attr('data-comment');
$.ajax({
type: "GET",
url: "api/comments?postid=" + $(this).attr('data-comment'),
processData: false,
contentType: "application/json",
data: '',
success: function(r) {
var res = JSON.parse(r)
console.log(res)
ShowCommentsModal.call(res);
},
error: function(r) { console.log(r) }
}); //END OF AJAX
}); //END OF COMMENT CLICK LIKE FUNCTION
}); //End of For Loop
} end of funcrion
Код для создания кнопки
<button class="btn btn-primary" id="InteractButt" data-likes=“'+res[index].post_id+'“
Кнопки генерируются динамически, где я помещаю '// КОММЕНТАРИЙ HTMLЗДЕСЬ '