setInterval中的setTimeout()未按预期触发

时间:2015-06-16 16:36:20

标签: javascript

我的代码如下。我需要做的是每2秒运行一些代码才有效。这是代码的setInterval部分。

我还需要每n * 2 + 1秒运行一些其他代码。这是不起作用的部分。它位于setTimeout函数中。见这部分(j * 2000 + 1000)。

var linesOfText = ['Testing First Part', 'Testing Second Part', 'Testing Third Part', 'Testing Fourth Part', 'Testing Fifth Part'];
var j = 1;
var total = linesOfText.length;
var myVar = setInterval(function(){
 var d = new Date();
 var n = d.getSeconds();
 console.log('top - ' + n);
   $('.vertical-effectOFF').addClass('vertical-effect-' + j);
   setTimeout(function(){
       var d = new Date();
       var n = d.getSeconds();
       console.log('middle - ' + n);
       console.log(j * 2000 + 1000);
   }, j * 2000 + 1000);


   j++;
   if (j === total) {
     console.log('reset');
     j = 1;
   }
}, 2000);

1 个答案:

答案 0 :(得分:0)

如果其他人有类似问题,我就是这样解决的。

var linesOfText = ['Testing First Part', 'Testing Second Part', 'Testing Third Part', 'Testing Fourth Part', 'Testing Fifth Part'];
var j = 1;
var total = linesOfText.length;
var myVar = setInterval(function(){
 var d = new Date();
 var n = d.getSeconds();
 console.log('top - ' + n);
   $('.vertical-effectOFF').addClass('vertical-effect-' + j);

   j++;
   if (j === total) {
     console.log('reset');
     j = 1;
   }
}, 2000);




setTimeout(function(){
 var myVar = setInterval(function(){
  var d = new Date();
  var n = d.getSeconds();
  console.log('middle - ' + n + ' - ' + j);

 }, 2000);
}, 1000);