在location.reload之前执行警报

时间:2017-12-08 06:32:11

标签: jquery ajax

我正在使用jQuery确认min js。并在我的ajax代码中使用alert。

问题是当我的ajax代码首先运行时,它优先考虑locationReload并重新加载。我想首先运行警报然后重新加载。

有一件事我注意到,如果我使用简单ALERT('some'),那么它可以工作,但这不能。

我的代码如下

success:   function(data) { 
  $.alert({
      title: 'Message!',
      content: data,
      theme: 'material',
      animation: 'zoom',
      animationBounce: 2.5, 
  });
  //$('#thmb_prev').html(data);
  $('#loader').hide();
  location.reload();
}

2 个答案:

答案 0 :(得分:1)

由于JavaScript解释器在一个线程中执行代码,因此它不会等待对话框关闭。 alert()阻塞线程直到它被关闭。这就是为什么它似乎在你的情况下正常工作。

但要在此处执行您想要的操作,您需要使用回调,如documentation中所述。

success: function(data) { 
  $.alert({
      title: 'Message!',
      content: data,
      theme: 'material',
      animation: 'zoom',
      animationBounce: 2.5,
      onClose: function () {
        // Do whatever you want when the dialog is about to be closed
        location.reload();
      }
  });
  //$('#thmb_prev').html(data);
  $('#loader').hide();
}

答案 1 :(得分:0)

您可以使用确认框而不是警报。所以一旦你点击确定,它就会重新加载。试试下面的内容。你可以找到样本here

$.confirm({
    title: 'Message!',
      content: data,      
    buttons: {        
        OK: {
            location.reload();
            }
        }
    }
});