Jquery延迟在.html()调用后被忽略
Jquery delay being overlooked after .html() call
我试图在加载图像后引入延迟,但它一直跳过。delay()
$('"#output'").html('"<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>'").delay(5000);
我已经尝试了上面代码的许多版本,但它仍然不起作用
感谢大家的帮助。
正如jQuery文档中所解释的,.delay()
是一个jQuery动画方法,它只延迟后续动画(在同一元素上),它不会延迟非动画方法的结果,也不会"暂停"代码执行。因此,在显示的代码行之后的任何代码行都将立即执行。
假设你想做的是在执行下一行之前等待两秒钟,你可以这样做:
$("#output").html("<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>");
setTimeout(function() {
// your other code here
}, 2000);
它使用JavaScript的内置setTimeout()
函数来延迟你传递给它的函数中任何代码的执行
来自jQuery文档
.delay()方法最适合在排队的jQuery之间延迟效果。因为它是有限的,例如,它没有提供一种方法.delay()不能替代JavaScript的nativesetTimeout函数,它可能更适合某些用途例。
你的图像正在加载,然后延迟触发,然后…接下来会发生什么就看你了。但是因为。delay是附在#output
上的,所以你只能对#output
做一些事情。例如,您可以将其淡出。
$("#output").html("<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>").delay(5000).fadeOut();
http://jsfiddle.net/M2GRj/如果你想在加载图像之前设置一个延迟,那么在设置html.
之前使用delay$("#output").hide().delay(5000).html("<center><img src='http://i.imgur.com/GM6KJdh.gif' /></center>").fadeIn();
http://jsfiddle.net/M2GRj/3/如果你想在图片加载后触发暂停,那么给你的图片一个ID,并在加载事件中调用setTimeout函数。
$("#output").html("<center><img id='img1' src='http://i.imgur.com/GM6KJdh.gif' /></center>");
// Note: You can only use this after #img1 has been added to the DOM
$('#img1').load(function(){setTimeout('alert("hello")',5000);});
http://jsfiddle.net/M2GRj/5/AFAIK delay()
函数只是延迟队列中后面的函数。所以你需要在delay()
之后调用另一个函数。
也许你可以试试
.delay(5000).finish();
jQuery API说:
.delay()方法允许我们延迟函数的执行跟着它排队。它可以与标准效果队列一起使用或者使用自定义队列。只有队列中的后续事件才会被延迟
作为
下面检查的例子当执行下面的语句时,元素向上滑动300毫秒,然后暂停800毫秒,然后淡出400毫秒。
$('#foo').slideUp(300).delay(800).fadeIn(400);
如果延迟后没有任何后续事件,则可以使用JavaScript's native setTimeout function
如何使用setTimeout function
?
setTimeout(function() {
//your code
}, 2000); // will work with every browser
查看.delay()和setTimeout
- jQuery延迟了ajax调用的循环
- 使用jquery延迟对象链接多个ajax调用
- jQuery通过嵌套的ajax调用延迟对象
- jQuery 延迟的 AJAX 调用返回值
- 如何在 JS 中调用 2 次或更多次时延迟函数执行
- AJAX 调用和表单提交之间的延迟
- 如何按顺序调用延迟函数
- 使用promise或setTimeout确定延迟函数的调用顺序
- 如何调用具有延迟的函数
- 将for循环从完成延迟到返回API调用
- 在JS文件中设置延迟以调用JS文件
- jQuery deferred:用于延迟函数的返回,直到函数内的异步调用完成+获取返回值
- 防止 JavaScript 调用延迟出现
- Javascript AJAX函数调用延迟
- 将第一个函数调用延迟n秒
- jsTree v.3使用ajax调用延迟加载
- 导致ajax调用延迟的原因是什么?
- 函数调用延迟
- 如果在此期间发生其他事件,如何停止调用延迟函数
- Internet Explorer启动AJAX调用延迟