javascript — проблема jquery с $ (document) .on отбрасывает переменные

у меня есть этот код без (документация), он работает в сообщении, что div перезагружается после перезагрузки, кнопки не работают. При (doc on) событие запускается, но отбрасывает переменные, есть идеи?

 $(document).on(".status").click(function (event) {
event.preventDefault();
var ids = $(this).attr("data-id-status");
var status = $(this).attr("data-status");
var record = this;
$(record).attr('class', 'btn btn-danger big-bnt prams');
$(record).prop('disabled', true);
$(record).html('Precessing');
$.ajax({
url: 'ajax.php',
type: 'post',
data: {action: 'status', id: ids, status: status},
success: function (data, status) {
alert(data);
if (data == '0') {
$('#flag-view').fadeOut(800, function () {
$("#r" + ids).remove();
$('#flag-view').fadeIn().delay(2000);
});
}
else if (data == '2') {

}
else if (data == '3') {

}
},
error: function (xhr, desc, err) {
console.log(xhr);
console.log("Details: " + desc + "\nError:" + err);
}
}); // end ajax call
})

0

Решение

Ваше объявление неверное изменение

От

$(document).on(".status").click(function (event) {

к

$(document).on("click", ".status", function(event){
});
2

Другие решения

Это не так .on() работает.

.on() является вспомогательной функцией, которая используется для добавления обработчиков событий в элемент (с необязательным селектором), например так:

$(document).on("click", ".status", function (event) {
// Do your stuff here
});

Выполнение этого (предоставление селектора) превращает его в делегированный обработчик. Только один обработчик события добавляется в document и любые события, которые всплывают, будут перехвачены и переданы функции обратного вызова.

Вы также можете добавить обработчик событий непосредственно к элементу (или коллекции элементов), например, так:

$(document).find(".status").on("click", function (event) {
// ...
});

Если .status элементы, к которым был добавлен обработчик, удаляются, затем обработчик также удаляется.

Обработка событий в jQuery может поначалу немного сбивать с толку, но это вполне логично. Я хотел бы предложить вам прочитай об этом чтобы лучше понять, как это работает.

1

По вопросам рекламы [email protected]