function tryToDownload(url)
{
oIFrm = document.getElementById('myIFrm');
oIFrm.src = url;
// alert(url);
// url=escape(url);
setTimeout(deletefile(url), 25000);
}
以下是删除文件函数
function deletefile(url){
$.ajax({
type:'post',
url: "<%= addToDoDeleteDownloadFile %>",
data:{filename:url},
type : "GET",
timeout : 20000,
dataType : "text",
success : function(data) {
alert("success");
}
});
}
上面是我的 jQuery,我在 25 秒后最后调用一个函数,但是它没有延迟 deletefile(url) 函数并在之后执行。那么问题应该是什么?
在这一行中,您正在调用您的函数并传递它的result to setTimeout().
setTimeout(deletefile(url), 25000);
如果你想延迟执行,添加一个包装函数:
setTimeout( function(){ deletefile(url); }, 25000);
EDIT
@Petah 提出的替代方案:
setTimeout(deletefile, 25000, url);
所有参数传递给setTimeout()
延迟后,将传递给执行时的函数。所以在这种情况下,你通过参考到函数,延迟,然后按这个顺序到函数的参数!
请注意,根据MDN这种传递参数的方式在 IE9 之前的 IE 中不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)