我正在尝试使用jQuery进行动画制作但是在IE7 / 8/9上它在显示元素之前无效。
function callback() {
$('#content').animate([...]);
[...]
}
$('#content').hide();
[...]
$('#content').show();
callback();
在执行回调之前,它只对我有用setTimeout(function() { callback(); }, 300);
,也许我需要等待IE识别已显示的元素。这有什么问题?
答案 0 :(得分:1)
您需要等待元素存在于页面中,然后才能使用jQuery选择它。
用以下内容包装脚本:
jQuery(function($){
//your code here
});
这是document.ready
事件监听器的快捷方式。
答案 1 :(得分:0)
由于JS是单线程的,因为你调用show()并不意味着它实际显示;您需要将控制权返回给父级,以允许它在此之前绘制和更新DOM。 setTimeout允许您的JS屈服于父级,在继续执行之前进行更新。 setTimeout为0很可能也有效。