gpt4 book ai didi

javascript - select 在 div 刷新后不进行 ajax 调用

转载 作者:行者123 更新时间:2023-11-30 14:21:05 26 4
gpt4 key购买 nike

我在同一个 div 中有一些功能。一切都很好,但只是在第一次。之后,什么都不起作用。

我有一个带有更改 ajax 调用的 select2:

$('#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').select2(); 将 select 转换为 select2,但它不起作用。

基本上 select 转换为普通 select,而将其转换为 select2 的代码不起作用。除此之外,即使我更改了 select 2 中的值,它也不会调用 ajax 来列出结果 ($('#category').change(function(e){)

通过这种方式,我希望您能帮助解决以下两种解决方案之一:1- 让这个简单的东西起作用,所以在刷新后选择变成 select2 并且它与我创建的更改功能一起工作;2- 刷新后,使其像上面一样工作,但默认选择最后一个会列出所有内容以继续工作(避免一次又一次地选择类别并等待数据列表)(最佳选择);

如有任何帮助,我们将不胜感激。希望线程被很好地呈现。如果需要更改某些内容,请告诉我,我会更新它。谢谢。

最佳答案

请使用

$('body').delegate('#category','change',function(){

})

因为有一段时间开发者使用数据表数据表不读取下一页直接dom

关于javascript - select 在 div 刷新后不进行 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52737754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com