1

我是 jQuery 的新手。我需要在一段时间后调用该方法。

    $(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);
                }
            });
    });

它说,Uncaught ReferenceError: SetTime2 is not defined。什么是正确的语法?谢谢。

4

1 回答 1

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(),而是希望传递不带引号或括号的实际函数引用。

注意:您也可以使用匿名函数执行此操作:

$(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);
});
于 2012-10-13T05:15:52.947 回答