求助:SweetAlert成功回调中jQuery无法正常工作
解决SweetAlert回调中jQuery代码失效的问题
嘿,我看了你的代码,问题其实很明显——你已经发起了AJAX请求,但完全没处理请求成功后的逻辑呀!这就是为什么你想隐藏box div的操作没执行的原因。
先给你理清楚问题出在哪:你的AJAX代码只写了请求的URL和方法,但没有定义success回调函数——也就是当请求成功完成后,该执行哪些操作的部分。另外,你设置了closeOnConfirm: false,所以还得手动关闭SweetAlert弹窗。
下面是修改后的完整代码,我加了关键的处理逻辑:
function confirmDelete() { swal({ title: "Are you sure?", text: "You will not be able to recover this imaginary file!", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "Yes, delete it!", closeOnConfirm: false }, function (isConfirm) { if (!isConfirm) return; $.ajax({ url: "scriptDelete.php", type: "POST", // 记得补充你需要传给后端的参数,比如要删除的文件ID // data: { fileId: "your-file-id" }, success: function(response) { // 请求成功后隐藏box div,注意选择器要和你的实际元素匹配 $('#box').hide(); // 如果是class就用 $('.box').hide() // 手动关闭弹窗并显示成功提示 swal("Deleted!", "Your imaginary file has been deleted.", "success"); }, error: function(xhr, status, error) { // 处理请求失败的情况,给用户反馈 swal("Oops!", "There was an error deleting the file. Please try again.", "error"); } }); }); }
另外,再给你几个需要检查的关键点,避免踩坑:
- 确认jQuery是在SweetAlert之前加载的(因为你用的是SweetAlert 1.x版本,它依赖jQuery)
- 检查
box元素的选择器是否正确,比如有没有拼写错误,是ID还是class - 打开浏览器开发者工具(F12),查看网络请求是否成功,控制台有没有报错信息——这是快速定位问题的好办法
- 确保
scriptDelete.php能正确处理POST请求,并且返回200状态码的响应
内容的提问来源于stack exchange,提问作者spice
相关产品推荐
相关产品推荐

