0

我在 document.ready 中有一些可以触发的代码,但是它触发得太快了。这首先取决于一些 JavaScript 创建或其他东西,否则我会产生不良影响。

我所做的是将我想最后运行的代码放在 setTimeout-Zero 中,这基本上会推动它的委托最后运行。这工作正常。

有没有更好的方法来解决这个时间问题并确保我的代码稍后运行?我正在解决一个只存在于 IE 中的问题。

$(document).ready(function() { 
        window.setTimeout(function() {
            $('#accordionmain').trigger('click');
        //$('#accordionmain').trigger('click');
    }, 0);
4

1 回答 1

3

你可以稍微不同地触发你的准备

而不是 $(document).ready();

$(document).on('imReady', function() { 
    $('#accordionmain').trigger('click');
    // ..other stuff
});

现在在您的代码中,做您需要的任何事情,当您准备好时,只需调用

$(document).triggerHandler("imReady");

当然如果你知道什么时候完成,你也可以$('#accordionmain').trigger('click');直接打电话

我一直使用这种东西,因为我已经准备好了一个全局文档,但是我需要做一些设置,调用一堆其他的东西,然后最后触发一种 finalize() 准备好的函数,说UI 现在终于可以供最终用户使用了。

于 2013-07-16T21:13:00.533 回答