有人可以让我知道我在这里做错了什么,因为看起来我的.delay无法正常工作:
$(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秒,然后隐藏它然后显示我的其他添加节点div。
当我按下我的按钮时,注意到似乎发生了,它只显示我原来的添加节点div按钮。
任何想法。
感谢。
答案 0 :(得分:3)
而不是
$('#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();
}