如何循环我的代码

How can i loop my code?

本文关键字:我的 代码 循环 何循环      更新时间:2023-09-26

我的代码如下所示:

$(document).ready(function() {
  var callnotification = function() {
  $.sticky('<b>TestA</b>');
  }
  setInterval(callnotification, 5000);
}); 

我想显示不同的通知,例如:TestA,TestB,Test3每5000秒。我尝试做这样的事情:

$(document).ready(function() {
var callnotification = function() {
$.sticky('<b>TestA</b>');
}
setInterval(callnotification, 5000);
var callnotification = function() {
$.sticky('<b>TestB</b>');
}
setInterval(callnotification, 5000);
var callnotification = function() {
$.sticky('<b>TestC</b>');
}
setInterval(callnotification, 5000);
}); 

但它似乎成倍增加。我认为这是函数相互循环的情况,它显示如下通知: 测试 A 测试 B 测试 B 测试 B 测试 C 测试 B 测试 A等。。

那么..我怎样才能循环呢?假设我想从测试 A 循环到测试 M,再从测试 A 循环到测试 M。

试试这个:

 $(document).ready(function() {
      var callnotification = function() {
      var counter = 65;
      $.sticky('<b>Test' + String.fromCharCode(counter++) + '</b>');
      }
      setInterval(callnotification, 5000);
    }); 

对于从 M 到 A 的重新循环:

$(document).ready(function() {
          var callnotification = function() {
          var counter = 65;
          $.sticky('<b>Test' + String.fromCharCode(counter++) + '</b>');
          if (counter == 78) {counter = 65};
          }
          setInterval(callnotification, 5000);
        }); 

试试这个:

var i = 0;
var letters = ['A', 'B', 'C'];
var callnotification = function(msg) {
   $.sticky('<b>'+msg+'</b>');
}
var t = setInterval(function(){
   callnotification('Test'+letters[i%letters.length]);
   i++;
},5000);

片段:http://codepen.io/anon/pen/mPbpbm

在我看来

,Sticky js是一个糟糕的库。

请改用这个:通知管理器

以下是您的案例的几个示例,看看哪一个适合您:

$(function() {
  var charCode = 65;
  setInterval(function() {
    var notification = window.createNotification();
    var msg = 'Test ' + String.fromCharCode(charCode++);
    notification.addMsg({
      text: msg, type: 'alert'
    });
    notification.render(null, function(notif) {
      // example 1
      notif.destroy(5000);
      /* example 2
          notif.destroy(5000, function() {
            var newNotif = window.createNotification();
            newNotif.addMsg({
              text: '(' + msg + ' is closed)',
              type: 'info'
            });
            newNotif.render();
          });
          */

      /* example 3
          var newNotif = window.createNotification();
          newNotif.addMsg({text:'('+msg+' is closed)', type:'info'});
          newNotif.render(5000);
          */
    });
    (charCode == 78) && (charCode = 65);
  }, 1000);
});