addEventListener 取决于 setTimeout

Joh*_*ohn 1 javascript addeventlistener settimeout

如何在 setTimeout 之后使用 addEventListener 调用函数?这是代码中的示例:

\n\n
xyz = setTimeout(function () {\n    [...blabla function...]\n    // *(\xe2\x86\x93)\n    if (window.addEventListener) {\n        window.addEventListener(\'load\', blabla, false);\n    } else {\n        window.attachEvent(\'onload\', blabla);\n    }\n}, 3000);\n
Run Code Online (Sandbox Code Playgroud)\n\n

*(\xe2\x86\x92):addEventListener在页面加载时调用该函数,但他应该在setTimeout为3秒后调用“blabla”函数。那么,如何解决这个问题呢?

\n

Bar*_*mar 5

如果您想在窗口加载后 3 秒调用函数,您应该将调用放入setTimeout处理程序

function delayed_blah() {
    setTimeout(blabla, 3000);
}

if (window.addEventListener) {
    window.addEventListener('load', delayed_blah, false);
} else {
    window.attachEvent('onload', delayed_blah);
Run Code Online (Sandbox Code Playgroud)

对于您的应用程序,您想要做的是decrypt()从动画回调中调用该函数:

$('#dlbox').animate({
    'top': '0'
}, 1000, decrypt);
Run Code Online (Sandbox Code Playgroud)

演示版