我学习jQuery,但不了解这种情况:

在调试模式下运行此代码时,所有功能都可以正常运行。但是,正常运行此代码时,不会启动回调功能。为什么?
在非调试模式下,我有->“开始”->“结束10”

浏览器:谷歌浏览器。

var nrPost = 10;

$("#buttnX").click(function() {
    alert("Start");
    GoPosts();
    End();
});

function End() {
    alert('End ' + nrPost);
};

function GoPosts() {
    $.ajaxSetup({async:false});
    var url = "http://......";
    var data = { ... };
    $.post(url, data, Callback, 'json');
};

function Callback(response) {
    if (response.error) {
        return;
    }

    nrPost--;

    if (nrPost > 0) [
        GoPosts();
    } else {
        return;
    }
};

最佳答案

您多了一个};在您的代码中。我对它做了一些改动,以使用jQuery并将其放在jsfiddle上。

http://jsfiddle.net/rH8RV/19/

它应该发出警告:“开始”,然后“结束10”,根据您编写代码的方式,这是正确的。您还期待其他吗?

关于javascript - jQuery $ .post()以递归方式(循环),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5641080/

10-09 20:26