2

我的代码中有以下功能。这是一个简化版本:

$.ajax({
  url: $form.attr('action'),
  dataType: 'json',
  type: 'POST',
  data: $form.serializeArray(),
  success: function (json, textStatus, XMLHttpRequest) {
    // delay here
    alert("hello");
  }

有什么方法可以引入延迟。例如,上述代码延迟 5 秒?

请注意,我需要将此处的 // 延迟一词替换为可能会产生延迟的内容。

4

4 回答 4

6

您可以使用setTimeout()匿名函数:

setTimeout(function() { /* your code here */ }, 5000);

这将在 5 秒延迟后运行该函数内的代码。

于 2012-04-23T17:36:48.700 回答
3

你当然可以。

 $.ajax({
            url: $form.attr('action'),
            dataType: 'json',
            type: 'POST',
            data: $form.serializeArray(),
            success: function (json, textStatus, XMLHttpRequest) {
                  // delay here
                  setTimeout(function() { alert("hello"); }, 5000);
            });
于 2012-04-23T17:37:41.243 回答
2

您将使用setTimeout(),这就是您将其引入您自己的代码的方式:

$.ajax({
  url: $form.attr('action'),
  dataType: 'json',
  type: 'POST',
  data: $form.serializeArray(),
  success: function (json, textStatus, XMLHttpRequest) {
    // save 'this' pointer in case you need it in the setTimeout() function
    // because it will be set to something different in the setTimeout() callback
    var self = this;
    setTimeout(function() {
        // execute whatever code you want here with a 5 second delay
        alert("hello");
    }, 5000) ;
  }
于 2012-04-23T17:38:56.393 回答
1

您可以使用该setTimeout方法

如果您想延迟警报,请使用

success: function (json, textStatus, XMLHttpRequest) {
                  // delay here
                  setTimeout(function(){alert("hello");}, 5000); // 5000 is in milliseconds
            }
于 2012-04-23T17:37:53.530 回答