【问题标题】:In jQuery how do I create alert every 5 seconds?在 jQuery 中,如何每 5 秒创建一次警报?
【发布时间】:2023-04-10 04:34:01
【问题描述】:

我可以使用 jQuery 来做到这一点,还是应该考虑使用其他东西?

【问题讨论】:

  • 简短回答:与 JavaScript 中的相同;)(没有特殊的 jQuery 功能)。
  • 不需要 jQuery。普通的老setInterval() 会做
  • setInterval vs setTimeout 的可能重复项

标签: javascript jquery


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    同样,这里不需要 jQuery:

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

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

    【讨论】:

    • 每次看到有人把 JS 称为 jQuery,我都会咯咯地笑
    • 从技术上讲,你可以在 vanilla JavaScript 中做所有你会使用 jQuery 的事情,因为 jQuery 是 JavaScript。
    • 我同意,jQuery真的是最好的,它解决了各种浏览器问题,也很好
    【解决方案3】:

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

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

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

    我注意到在某些浏览器中,您可以使用 setInterval() 执行的操作受到限制 - 例如,它可能不允许您在页面加载时调用 setInterval()

    【讨论】:

      【解决方案4】:

      我使用这个脚本Cookbook/wait 和一个小插件,效果很好:

      (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();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-16
        • 1970-01-01
        • 2020-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-03
        相关资源
        最近更新 更多