jquery $(document).on 丢弃变量的问题
jquery issue with $(document).on drops variables
我有这段代码,但它的工作原理告诉 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
})
您的声明不正确更改
来自
$(document).on(".status").click(function (event) {
到
$(document).on("click", ".status", function(event){
});
那不是 .on()
的工作方式。
.on()
是一个辅助函数,用于向元素添加事件处理程序(带有可选的选择器),如下所示:
$(document).on("click", ".status", function (event) {
// Do your stuff here
});
这样做(提供选择器)使其成为委托处理程序。只向 document
添加了一个事件处理程序,任何冒泡的事件都将被捕获并提供给回调函数。
您还可以将事件处理程序直接添加到一个元素(或一组元素),如下所示:
$(document).find(".status").on("click", function (event) {
// ...
});
如果删除添加了处理程序的 .status
个元素,则处理程序也将被删除。
jQuery 中的事件处理起初可能有点令人困惑,但它很合乎逻辑。我建议您 read up on it 更好地了解它的工作原理。
我有这段代码,但它的工作原理告诉 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
})
您的声明不正确更改
来自
$(document).on(".status").click(function (event) {
到
$(document).on("click", ".status", function(event){
});
那不是 .on()
的工作方式。
.on()
是一个辅助函数,用于向元素添加事件处理程序(带有可选的选择器),如下所示:
$(document).on("click", ".status", function (event) {
// Do your stuff here
});
这样做(提供选择器)使其成为委托处理程序。只向 document
添加了一个事件处理程序,任何冒泡的事件都将被捕获并提供给回调函数。
您还可以将事件处理程序直接添加到一个元素(或一组元素),如下所示:
$(document).find(".status").on("click", function (event) {
// ...
});
如果删除添加了处理程序的 .status
个元素,则处理程序也将被删除。
jQuery 中的事件处理起初可能有点令人困惑,但它很合乎逻辑。我建议您 read up on it 更好地了解它的工作原理。