Javascript 选择div刷新后不进行ajax调用
我在同一个分区中有一些函数。一切都很好,但只是第一次。在那之后,一切都不起作用 我有一个select2 with change ajax调用:Javascript 选择div刷新后不进行ajax调用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在同一个分区中有一些函数。一切都很好,但只是第一次。在那之后,一切都不起作用 我有一个select2 with change ajax调用: $('#category').change(function(e){ e.preventDefault(); var s = document.getElementById("category"); var strUser = s.options[s.selectedIndex].value; var formData = new FormData();
$('#category').change(function(e){
e.preventDefault();
var s = document.getElementById("category");
var strUser = s.options[s.selectedIndex].value;
var formData = new FormData();
formData.append('caller', 'PrintData');
formData.append('id', strUser);
$.ajax({ url: '../inc/call.php',
enctype: 'multipart/form-data',
processData: false,
contentType: false,
cache: false,
data: formData,
type: 'POST',
success: function(output) {
$('#data').html(output);
}
});
})
select2包含类别,它将列出属于该类别的所有行。到目前为止,一切顺利
调用后,它会将所有结果列为一个带有3个按钮的表格。其中一个使用ajax调用删除该字段。
要收听该按钮的单击,我使用以下命令:
$('#reloader').on( "click", "button", function(e) {
e.preventDefault();
let button = $(this);
let id = button.data("id");
let func = button.data("function");
let code = button.data("action");
if(func == "delete"){
DeleteData(id, code);
}else if(func == "edit"){
window.location = button.data("link")
}
});
当我单击按钮删除该行时,上述函数调用以下函数:
function DeleteData(id, code)
{
swal({
title: 'Are you sure?',
text: "Do you want to delete " + code + "?" ,
type: 'question',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes',
showLoaderOnConfirm: true,
preConfirm: function() {
return new Promise(function(resolve) {
$.ajax({ url: '../inc/call.php',
data: {
dados: JSON.stringify(id),
caller: 'DeleteData',
dataType: 'json'
},
type: 'POST'})
.done(function(response){
swal('Done!', response.message, response.status);
updateDiv("reloader");
$('#category').select2();
})
.fail(function(response){
swal('Oops...', response.message, response.status);
updateDiv("reloader");
$('#category').select2();
});
});
},
allowOutsideClick: false
});
};
我的问题发生在这个ajax调用之后。
看起来,在我调用了一个函数,用updateDiv(“reloader”)来“刷新”整个div之后代码>。然后,我尝试使用$('#category')将select转换为select2代码>但它不起作用
基本上,select转换为普通select,而将其转换为select2的代码不起作用。除此之外,即使我更改select 2中的值,它也不会调用ajax来列出结果($(“#category”)。更改(函数(e){
)
通过这种方式,我希望您能帮助我找到以下两种解决方案之一:
1-使这个简单的事情工作,所以刷新后,选择变成select2,它与我创建的更改功能一起工作;
2-刷新后,使其如上所述工作,但默认选择最后一个将列出所有要继续工作的内容(避免一次又一次地选择类别并等待数据列表)(最佳选项)
任何帮助都将不胜感激。
希望该线程呈现良好。如果需要更改,请告诉我,我会更新它。谢谢。请使用
$('body')。委托('category','change',function(){
})
因为有一段时间开发人员使用datatable
datatable未读取下一页direct dom请使用$('body')。委托('category','change',function(){})现在似乎可以工作,但select没有返回为select2。代码$('category')。select2();没有转换它。有什么建议吗?