如何在setTimeout之后用addEventListener调用函数?以下是代码中的示例:
xyz = setTimeout(function () {
[...blabla function...]
// *(↓)
if (window.addEventListener) {
window.addEventListener('load', blabla, false);
} else {
window.attachEvent('onload', blabla);
}
}, 3000);
*(→):addEventListener在页面加载时调用该函数,但是只有在setTimeout为3s后才能调用“blabla”函数。那么,如何解决这个问题?
答案 0 :(得分:4)
如果要在加载窗口3秒后调用函数,则应将setTimeout
调用放入处理程序中:
function delayed_blah() {
setTimeout(blabla, 3000);
}
if (window.addEventListener) {
window.addEventListener('load', delayed_blah, false);
} else {
window.attachEvent('onload', delayed_blah);
对于您的应用程序,您要做的是从动画回调中调用decrypt()
函数:
$('#dlbox').animate({
'top': '0'
}, 1000, decrypt);
答案 1 :(得分:1)
由于延迟,“load”事件在附加事件处理程序之前就已经被触发了。
可能会有所帮助。
function blahblah(){
}
window.addEventListener("DOMContentLoaded",function(){
setTimeout(blahblah,3000);
});
答案 2 :(得分:0)
您可以使用jquery来满足您的要求。代码如下。 在此,当页面完全加载时,将调用setTimeOut函数。
$(function () {
setTimeout(function () {
blabla();
}, 3000);
});