Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在尝试使用jQuery.delay()_Jquery - Fatal编程技术网

正在尝试使用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,我可以尝试修复它@扁桃体你是对的,它不起作用,我提供了一个新的答案。谢谢你的新答案,我知道有什么不对劲。延迟和显示/隐藏。