2013-08-02 87 views
0

我有一個20 div div的div。我正在做的是從div:eq(1)開始,並將它與左邊的交換,然後重複div:eq(2),div:eq(3)等,並交換到左邊。jquery animate divs eq()方法關閉

看來在此之後DOM不會正確更新,因爲它們在此之後總是關閉1。

我以爲也許克隆動畫完成後的div將工作,但它does not。

看來DOM不會更新它的結構嗎? 編輯 對不起,最初不提供代碼。正如你在第一次交換之後看到的那樣,它使用「舊」div。

http://jsfiddle.net/vrCUT/

$(function() { 


    var currentIndex = 0; 
    for (i = 0; i < 20; i++) { 
      $("#holder").append('<div class="number">' + i + '</div>'); 
    } 


    function resetDivs(){ 
    $("#holder div").css("border", ""); 
    } 
    prepareForSwap(); 
    function prepareForSwap() { 
     currentIndex++; 
     resetDivs(); 
     div2 = $("#holder").find("div:eq(" + currentIndex + ")"); 
     div1 = div2.prev(); 

     div1.css("border", "3px solid blue"); 
     div2.css("border", "3px solid red"); 
     setTimeout(swap, 2000); 

    } 

    function swap() { 
     div1.animate({ 
      left: "+=25" 
     }, 2000, function() { 
     }); 


     div2.animate({ 
      left: "-=25" 
     }, 2000, function() { 
      if(currentIndex < 20){ 
      setTimeout(prepareForSwap,2000); 
      } 
     }); 


    } 
    ); 
+1

及!你的相關代碼在哪裏? – bipen

+2

'eq'是基於零的。不管這是我不能說的問題。 –

+0

你可以添加一些你的代碼和一個可以重新創建問題的js小提琴嗎? –

回答

0

div:eq(0)啓動它,直到div:eq(19)

+0

我不認爲這是問題。我已經添加了一些代碼演示。 – james