2012-10-13 140 views
1

我是jQuery的新手。我需要在一段時間後調用方法。需要調用jQuery ajax頁面方法

$(document).ready(function pageLoad() { 
     setTimeout('SetTime2()', 10000); 
    }); 

    (function SetTime2() { 
      $.ajax({ 
       type: "POST", 
       url: "MyPage.aspx/myStaticMethod", 
       data: "{}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        // Replace the div's content with the page method's return. 
        //$("#Result").text(msg.d); 
       } 
      }); 
    }); 

它說,未捕獲的ReferenceError:未定義SetTime2。 什麼是正確的語法?謝謝。

+0

是否有頁面上的任何JS錯誤。如果您使用的是Chrome瀏覽器,請點擊重新加載並查看是否有錯誤。 –

+0

刪除圍繞函數SetTime2方法的括號後嘗試 –

回答

2

改成這樣:

$(document).ready(function() { 
    setTimeout(SetTime2, 10000); 
}); 

function SetTime2() { 
     $.ajax({ 
      type: "POST", 
      url: "MyPage.aspx/myStaticMethod", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       // Replace the div's content with the page method's return. 
       //$("#Result").text(msg.d); 
      } 
     }); 
} 
  1. 你只是需要確定你的SetTime2()聲明中的正常功能。周圍沒有人。

  2. 此外,你不想傳遞一個字符串到setTimeout(),你想傳遞一個實際的函數引用沒有引號或parens。

注意:你也可以做到這一點使用匿名函數:

$(document).ready(function() { 
    setTimeout(function() { 
     $.ajax({ 
      type: "POST", 
      url: "MyPage.aspx/myStaticMethod", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       // Replace the div's content with the page method's return. 
       //$("#Result").text(msg.d); 
      } 
     }); 
    }, 10000); 
});