Я делаю запрос ajax, чтобы изменить data-status
в одном из моих div. Я не знаю почему, он выполняет несколько раз, когда я нажимаю одну из своих кнопок.Почему мой запрос ajax выполняется несколько раз?
Вот мой код:
$(document).on("click", ".check", function(){
var status = $(this).closest("td").data("status");
var avatarID = $(this).closest("td").data("id");
if (status === 1) {
$("#alert-unpublish-status").addClass('is-visible');
$("#alert-unpublish-status").on("click", function(e){
e.preventDefault();
$.ajax({
url: 'https://www.legiaodossuperpoderes.com.br/chronus/api/adm/avatar/'+avatarID+'/unpublish',
type: 'POST',
contentType: "application/json; charset=UTF-8",
xhrFields: {
withCredentials: true
},
success: function() {
Materialize.toast("Avatar unpublished", 2000, "green darken-1");
$("#alert-unpublish-status").removeClass('is-visible');
setTimeout(loadPage, 500)
}
});
});
}
})
Что не так? Как я могу улучшить его?
Спасибо!
вы добавляете обработчик щелчка внутри обработчика щелчка, каждый раз, когда документ щелкнул новый обработчик щелчка добавляется к элементу '# бдительных-status'-Отменить публикацию – mpallansch
@mpadittech как я могу написать это в лучший путь ? – vbotio
Просто добавьте обработчик кликов в '$ (document) .ready()'. Зачем вам ждать, пока пользователь не нажмет на .check? – Barmar