2012-04-23 8 views
2

私のコードには次のような機能があります。ここに簡略化したバージョンがあります:JavaScriptを遅らせる方法がありますか?

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

遅延を導入できる方法はありますか?例えば、上記のコードに5秒の遅延?

ここでは、//遅延を可能な限り遅延させるものに置き換える必要があることに注意してください。

+1

setTimeout関数をチェックアウトする - https://developer.mozilla.org/en/DOM/win dow.setTimeout –

答えて

6

あなたは匿名関数でsetTimeout()を使用することができます。

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

これは、5秒の遅延の後に、その関数内のコードを実行します。

+0

遅れてのOPの期待値は、後続のコードのためにある可能性があります。おそらくそこに言及する必要があります。 –

+0

はい、それは後続のコード用です。私はここで//遅延を何かに置き換えたいと思う。 –

+0

私は従っていません...私の例では '/ *あなたのコードはここに/ *'の中で遅延させたいコードを入れてください。あなたの例では、 'alert(" hello ");'となります。これはあなたの質問に答えませんか? – Brad

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); 
      }); 
+0

しかし、私は空の関数のような何かをすることができますか?上の例はあくまで例ですので、ここで// delayという単語を何かに置き換えたいと思います。 –

2

あなただけのあなたがsetTimeout()を使用すると、これはあなたがあなた自身のコードにそれを導入する方法である

success: function (json, textStatus, XMLHttpRequest) { 
        // delay here 
        setTimeout(function(){alert("hello");}, 5000); // 5000 is in milliseconds 
      } 
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) ; 
    } 
関連する問題