IE不尊重javascript行执行的顺序?

时间:2011-10-11 15:47:10

标签: javascript jquery internet-explorer

我正在尝试使用jQuery进行动画制作但是在IE7 / 8/9上它在显示元素之前无效。

function callback() {
    $('#content').animate([...]);
    [...]
}

$('#content').hide();
[...]
$('#content').show();
callback();

在执行回调之前,它只对我有用setTimeout(function() { callback(); }, 300);,也许我需要等待IE识别已显示的元素。这有什么问题?

2 个答案:

答案 0 :(得分:1)

您需要等待元素存在于页面中,然后才能使用jQuery选择它。

用以下内容包装脚本:

jQuery(function($){
  //your code here
});

这是document.ready事件监听器的快捷方式。

答案 1 :(得分:0)

由于JS是单线程的,因为你调用show()并不意味着它实际显示;您需要将控制权返回给父级,以允许它在此之前绘制和更新DOM。 setTimeout允许您的JS屈服于父级,在继续执行之前进行更新。 setTimeout为0很可能也有效。