我在document.ready里有一些代码,但它发射得太快了。 它取决于一些JavaScript的创建或其他东西,否则我就会得到一个不好的效果。
我所做的是把我想最后运行的代码放在setTimeout-Zero中,基本上是把它的委托人推到最后运行。 这样做的效果很好。
有没有更好的方法来解决这个定时问题,并确保我的代码在后面运行? 我正在解决一个只在IE中存在的问题。
$(document).ready(function() {
window.setTimeout(function() {
$('#accordionmain').trigger('click');
//$('#accordionmain').trigger('click');
}, 0);
你可以用不同的方式来触发你的ready
而不是$(document).ready()。
$(document).on('imReady', function() {
$('#accordionmain').trigger('click');
// ..other stuff
});
现在,在你的代码中,做任何你需要的事情,当你觉得准备好了,只需调用
$(document).triggerHandler("imReady");
当然,如果你知道自己什么时候完成,你可以直接打电话给 $('#accordionmain').trigger('click');
径直
我一直在使用这种东西,因为我有一个全局的文档,但我需要做一些设置,调用一堆其他的东西,然后在最后触发一种finalize()准备好的函数,说UI现在终于可以被最终用户使用了。