我在document.ready中有一些代码会触发,但它的触发速度太快了。这取决于一些JavaScript创建或其他东西,否则我会产生不良影响。
我所做的是将我想要的代码放在setTimeout-Zero中,最后将它的委托推送到最后运行。这很好用。
有没有更好的方法来解决这个时间问题并确保我的代码稍后运行?我正在解决仅在IE中的问题。
$(document).ready(function() {
window.setTimeout(function() {
$('#accordionmain').trigger('click');
//$('#accordionmain').trigger('click');
}, 0);
答案 0 :(得分:3)
你可以略微区别地触发你的准备
而不是$(文件).ready();
$(document).on('imReady', function() {
$('#accordionmain').trigger('click');
// ..other stuff
});
现在在您的代码中,做您需要的任何事情,当您感觉准备好时,只需致电
$(document).triggerHandler("imReady");
当然,如果你知道什么时候完成,你也可以直接打电话给$('#accordionmain').trigger('click');
我一直使用这种东西,因为我准备好了全局文件,但是我需要做一些设置,调用一堆其他东西,然后最终触发一种finalize()就绪函数说UI现在终于可以被最终用户使用了。