You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:14:03