正在尝试使用jQuery.delay()
我做错了什么?看来我的延迟不起作用了:正在尝试使用jQuery.delay(),jquery,Jquery,我做错了什么?看来我的延迟不起作用了: $(document).ready(function() { var imgsrc = "#WORKSPACE_IMAGES#spinner_big.gif"; $('a#add-node').click(function() { $('a#add-node').hide(); $('#form-loading').show().delay(5000); $('#form-loading'
$(document).ready(function() {
var imgsrc = "#WORKSPACE_IMAGES#spinner_big.gif";
$('a#add-node').click(function() {
$('a#add-node').hide();
$('#form-loading').show().delay(5000);
$('#form-loading').hide()
$('a#add-node').show();
});
});
我基本上希望显示我的表单加载div,等待5秒钟,然后隐藏它,然后显示我的另一个addnode div
当我按下按钮时,似乎什么都没有发生,它只显示了我原来的添加节点div按钮。而不是
$('#form-loading').show().delay(5000);
$('#form-loading').hide();
你应该这样做
$('#form-loading').show().delay(5000).hide();
摘自文件:
.delay()方法最适合于
排队jQuery之间的延迟
效果
不管怎样,如果什么都没有发生,您的事件似乎没有正确连接。把标记贴到或贴到提琴上,以便我们能提供帮助
编辑-我对文档的阅读稍微好一点:
在1.4版的jQuery中添加
.delay()方法允许我们延迟
执行随后的函数
在队列中。它可以与
标准效果队列或带有
自定义队列。只有后续事件
队列中的数据延迟;例如
这不会延迟无参数的测试
.show()或.hide()的形式
不要使用效果队列
因此,不能将延迟与show()和hide()一起使用;您必须使用setTimeout(),我想:
$('a#add-node').click(function() {
$('a#add-node').hide();
$('#form-loading').show();
setTimeout(restoreVisibility, 5000);
});
var restoreVisibility = function(){
$('#form-loading').hide();
$('a#add-node').show();
}
小提琴手:谢谢你的帮助,但不幸的是,我无法让它工作。如果您能为我们提供一个JSFIDLE的工作示例,我们将不胜感激。也可能是我使用IE8导致了我的问题吗?@扁桃体如果你提供你的html,我可以尝试修复它@扁桃体你是对的,它不起作用,我提供了一个新的答案。谢谢你的新答案,我知道有什么不对劲。延迟和显示/隐藏。