0

我有一个由 ajax 完成回调递归调用的函数,我需要为这个函数设置参数。但是如何在回调中传递参数?

function poll(url, data, pollDelay, type){
            $.ajax({ url: url, type: 'POST', data: data, success: function(data){
                if(data != '' && type == 1) { //do answers
                doOutput(data);
                }
            }, dataType: 'html', complete: pollTimeout = setTimeout('poll()', pollDelay), timeout: 30000 });
    }

function doPoll() {
    clearTimeout(pollTimeout);
    poll('url/f.php', obj = { id: someId, data: somedata }, 10000, 1);
}

非常感谢

4

1 回答 1

2

我假设你指的是你的setTimeout电话?永远不要将字符串传递给setTimeout.

pollTimeout = setTimeout(function() {poll(url,data,pollDelay,type);},pollDelay);

请注意,您的整个“完整”事物应该在这样的功能中:

$.ajax({...
    complete: function() {
        pollTimeout = setTimeout(...);
    }
...});
于 2012-09-11T15:21:48.803 回答