解决document.ready时间问题的最佳方法是什么?

问题描述 投票:0回答:1

我在document.ready里有一些代码,但它发射得太快了。 它取决于一些JavaScript的创建或其他东西,否则我就会得到一个不好的效果。

我所做的是把我想最后运行的代码放在setTimeout-Zero中,基本上是把它的委托人推到最后运行。 这样做的效果很好。

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

$(document).ready(function() { 
        window.setTimeout(function() {
            $('#accordionmain').trigger('click');
        //$('#accordionmain').trigger('click');
    }, 0);
jquery internet-explorer-8 jquery-events
1个回答
3
投票

你可以用不同的方式来触发你的ready

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

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

现在,在你的代码中,做任何你需要的事情,当你觉得准备好了,只需调用

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.