jQuery请求提交两次

Gri*_*gor 0 ajax jquery double-submit-problem

$("#classesLink").click(function(event) {
    $("#globalUserContent").children().slideUp("normal", function() {
        $.ajax({
            type: "POST",
            url: "classes.php?token="+randString+"",
            success: function (msg) {
                $("#globalUserContent").html(msg);
            },
            error: function (msg) {
                $("#globalUserContent").html(msg);
            }
        });            
    });
    return false;
});
Run Code Online (Sandbox Code Playgroud)

我有上面的代码,当我点击.classesLink按钮并检查firebug请求时,它显示它被提交两次,它有什么问题吗?

小智 5

这个...

$("#globalUserContent").children()
Run Code Online (Sandbox Code Playgroud)

...可能匹配2个元素,因此处理程序会触发两次.


你可以setTimeout改用.

$("#globalUserContent").children().slideUp("normal");

setTimeout(function() {
        $.ajax({
            type: "POST",
            url: "classes.php?token="+randString+"",
            success: function (msg) {
                $("#globalUserContent").html(msg);
            },
            error: function (msg) {
                $("#globalUserContent").html(msg);
            }
        });
}, 600);
Run Code Online (Sandbox Code Playgroud)