.empty()。append()setTimeout

时间:2014-11-11 14:11:00

标签: javascript jquery

我试图循环几个div,但找不到正确的语法。它适用于两个div。我试过 var src = state? '#div1':#div2:'#div3'; 我没有经验的脚本。有人可以告诉我合并更多div的正确方法吗?非常感谢任何建议。

(function () {
    var delay = 5000;
    var state = 0;
    (function next() {
        state = 1 - state;
        var src = state ? '#div1' : '#div2' ;
        var $contents = $(src).contents().clone().fadeIn(1999);
        $('#indexscroll').empty().append($contents);
        setTimeout(next, delay);
    })();
})();

1 个答案:

答案 0 :(得分:2)

保留一份divs,递增state的列表,当它从列表末尾运行时将其重置为0:

var delay = 5000;
var state = 0;
var myDivs = ['#div1', '#div2', '#div3' /* etc. */ ];

(function next() {
  if (state >= myDivs.length)
    state = 0;

  var src = myDivs[state++];

  var $contents = $(src).contents().clone().fadeIn(1999);
  $('#indexscroll').empty().append($contents);
  setTimeout(next, delay);
})();