在jQuery中如何每5秒创建一次警报?

我可以使用jQuery执行此操作,还是应该使用其他内容?

jQuery.delay()函数旨在延迟jQuery队列中函数的执行。 已经有一个用于处理间隔function的内置Javascript函数,你不会使用jQuery来实现它。

 setInterval(function() { alert("Message to alert every 5 seconds"); }, 5000); 

同样,这里不需要jQuery:

 setInterval(function() { alert("How Now Brown Cow"); }, 5000); 

(不要告诉任何人,但@Justin Niessner是对的,jQuery JavaScript)

您可以使用setInterval()setTimeout() 。 可能还有一个jQuery特定的辅助函数。

setInterval()接受2个参数 – 一个要执行的函数,以及调用之间的延迟(以毫秒为单位)。 它将继续调用该函数,直到您更改或调用或调用clearInterval(intervalID) 。 您必须传入setInterval()返回的值才能清除它。

setTimeout()采用相同的参数,但只执行一次。 您可以通过将函数中的最后一行传递给setTimeout()再次调用setTimeout()这个问题。

我注意到在某些浏览器中,使用setInterval()限制你可以做什么 – 例如,它可能不允许你在页面加载时调用setInterval()

我使用这个脚本Cookbook /等待一个小插件,它工作得很好:

 (function($){ $.fn.runItIf = function(ex, fn, args) { var self = this; return $(self).queue(function() { args = args || []; if (ex) fn.apply.(self, args ); $(self).dequeue(); }); }; $.fn.runIt = function(fn, args) { return $(this).runItIf(true, fn, args); }; $.fn.wait = function(time, type) { time = time || 1000; type = type || "fx"; return this.queue(type, function() { var self = this; setTimeout(function() { $(self).dequeue(); }, time); }); }; })(jQuery); 

基于Cookbook / wait中的示例的示例:

  function runIt() { var expression = true; $("div").wait() .animate({left:'+=200'},2000) .runIt(function() { /* ... */ } ).wait(10) .runItIf(expression, function() { /* ... */ } ).wait(10) .animate({left:'-=200'},1500,runIt); } runIt();