我正面临着jquery的奇怪情况。 我正在向我的dom打印一些html进行动作(我知道,这很糟糕,但你知道......)。 无论如何,我想在显示数据时显示通知。所以,我做这样的事情
$("#notification").show();
Draw();
$("#notification").hide();
Draw不会发出任何ajax请求,它只是数据处理和dom构造/显示。
我的问题是,如果我在此之前放置一个断点并且我一步一步地执行,通知将显示在$(“#notification”)。show()之后。但是,如果删除我的断点,我的通知将永远不会显示。 另外,如果我删除我的$(“#notification”)。hide();通知将在Draw()完成的同时显示。
看起来jquery在完成Draw()之前没有应用show()。
我也尝试了这个,但它不起作用(相同的行为)
$('#notification').show(0, function() {
Draw();
});
解决方案: 我使用了带有回调的slideDown()和slideUp()来使它工作(动画比从右上角滑动的默认show()动画更好。
答案 0 :(得分:3)
您应该使用show函数的回调,然后等待show函数在绘制之前完成。
$("#notification").show(function() {
Draw();
$("#notification").hide();
});
或
$("#notification").show("slow", function() {
Draw();
$("#notification").hide();
});
如果你想控制节目速度。