addEventListener depending on setTimeout



如何在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);
    });

最新更新