JQuery延迟不工作
我想让#load显示(同时隐藏#body)然后隐藏#load,并使#body可见与淡入淡出。那就是我最终想要的。我不认为ajaxstart和stop是可行的。这只是一个闪屏。JQuery延迟不工作
基本上隐藏页面加载中的#body,显示#load几秒钟,然后隐藏它,然后再次显示#body。为什么没有人可以弄清楚这一点!
jsfiddle.net/peTSQ
var body = $('#body');
$(body).hide();
$(this).show().delay(3000).hide(0, function() {
$(body).show();
});
这?
var body = $('#body');
$(body).hide();
$(this).show().delay(3000).hide(0, function() {
$(body).show();
});
+1但请解释为什么:) –
@Felix当然.... –
这不行? –
根据您想要延迟的时间,您可能会或可能不会接近。另外,你可以使用一个简单的setTimeout()函数来显示你想要的项目,并且只需要一定的时间。
以下将显示它为600毫秒,然后隐藏的项目:
$("#load").show().delay(600).hide();
每jQuery的文档,延迟的目的()函数:
设置一个计时器延迟执行队列中的后续项目。
其结果是,你可能只是想使用setTimeout的,因为你不分离的任何事件,而是将刚形成延迟:
setTimeout(function(){ $("#load").show(); }, 600);
如何将它合并到我的脚本,因为它是? –
更新时间:
$("#load").fadeOut("slow", function() { $("body").fadeIn('slow'); });
我会如何将它并入我的脚本,因为它是? –
我没有测试过这个,但它应该可以工作。你只是想在ajax调用期间创建一个覆盖层? –
你可能会检查这个插件,我在我的几个项目中使用这个:http://jquery.malsup.com/block/ –
最好做这种事情的方法是在$ .ajax函数上使用“success”参数。然后你可以停止“加载”的东西,当ajax请求得到答案。我认为你错误地解释了ajaxStart和ajaxStop –
#load上的AJAX调用究竟做了什么。也许它是在节目开火之前交换内容? – JohnFx
'''''' - 一个班级的好名字:P' –