setTimeout在jquery中调用ajax

时间:2011-08-08 06:36:53

标签: javascript jquery ajax function

有没有办法在这个ajax调用中使用setTimeout。这是我的代码:

jQuery.ajax({
    type    : "POST",
    url     : dir+"all/money/myFile.php",
    data    : "page="+data.replace(/\&/g, '^'),
    success : function(msg) {
    var info = jQuery('.product_overview #allinfo').html();
    var url = '<a href="http://www.mySite.com/openMe/letmeview.php?preview='+msg+'.html" target="_blank" class="check_link_preview" rel="'+msg+'.html">Check Preview</a>';          jQuery('.option_additional').next().find('textarea:first').text(info+url);
                },
    complete: function() {
    jQuery('.add-to-cart button.btn-cart').delay(500).trigger('click');
}
});

我想在触发这个ajax之前做一些事情,这就是为什么我会使用setTimeout或者会延迟这个动作的东西。

我该怎么做?

提前致谢:)

4 个答案:

答案 0 :(得分:2)

之前没有使用过jquery和setTimeout但是尝试

var t = window.setTimeout(function, delay);

用你的jquery函数替换上面代码中的函数。

答案 1 :(得分:2)

完整的功能:

complete: function () {
  setTimeout(function () {
     // your action here
  }, 500);
}

答案 2 :(得分:1)

您可以使用beforeSend, 的 Example

$(function() {

    function callBeforeAjax() {
        alert('and now do ajax');
    }

    $.ajax({
        beforeSend: callBeforeAjax,
        type: "POST",
        url: "/",
        data: "",
        success: function(msg) {},
        complete: function(msg) {
            alert(msg);
        }
    });
});

参考this

答案 3 :(得分:1)

@Tols是对的,它有效。尝试这样的事情:setTimeout(function(){jQuery('.add-to-cart button.btn-cart').trigger('click');}, 500);