如何在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" 函数。那么,如何解决这个问题呢?
如果要在
窗口加载 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);
演示
由于延迟,"load"事件甚至在附加事件处理程序之前就已经触发了。
也许这会有所帮助。
function blahblah(){
}
window.addEventListener("DOMContentLoaded",function(){
setTimeout(blahblah,3000);
});
你可以使用 jquery 来实现你所要求的任何目标。代码如下。在这种情况下,当页面完全加载时调用 setTimeOut 函数。
$(function () {
setTimeout(function () {
blabla();
}, 3000);
});