我正在使用jquery调用一些javascript函数,它们之间有延迟。
我也在使用Jquery Wait
当我调用下面的函数时,所有函数都被分别调用,彼此之间没有延迟。
$(this) .call(f1) .wait(5000) .call(f2) .wait(5000) .call(f3);
这里调用函数调用一些函数,就像我一样
$.fn.call = function (f) { if (f) f(); return this; };
我究竟做错了什么 ? 我怎样才能实现这样的目标?
谢谢
如果你想每5秒钟调用一次function
setTimeout(function(){f1},5000); setTimeout(function(){f2},10000); setTimeout(function(){f2},15000);
如果你想在最后一次终止使用后5秒钟调用每个function
setTimeout(function(){f1;setTimeout(function(){f2;setTimeout(function(){f3},5000);},5000);},5000);
你不需要那个食谱中的wait()
; delay()是内置的,似乎具有相同的function。 但是任何一个函数都需要在jQuery的内部效果队列中添加一些内容,然后在超时到期后删除它,即它不是一个sleep语句,因此它不会在返回之前等待。
如果你想使用delay()
或wait()
,你应该使call()
用queue()对函数进行排队 。 只是草绘,但有类似的东西:
$.fn.call = function(f) { if (f) { $(this).queue(function() { f(); $(this).dequeue(); } } return this; }
然后我希望你的代码按照你想要的方式工作。
这是一个函数,它按顺序调用一个函数数组:
$.fn.callFn = function(fns, delay) { var fn, that = this; if(fns.length > 0){ fn = fns.shift() fn && fn(); setTimeout(function(){ that.callFn(fns, delay); }, delay); } return this; };
你会这样称呼它:
需要了解更多jQuery教程分享调用javascript函数后放置延迟的最佳方法,都可以关注jQuery技术分享栏目—计算机技术网(www.ctvol.com)!
$(this).callFn([f1, f2, f3], 2000);
$('#box').slideUp(300).delay(800).fadeIn(400); /* .delay = wait time = 800 (this means it will wait 800/1000 of a second/ "1000 = 1 second") */
以上就是jQuery教程分享调用javascript函数后放置延迟的最佳方法相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/982585.html