2014-02-21 171 views
-1

我有一些JS代碼可以通過使用它們的類來跟蹤DOM元素的位置。但是,我需要將此類名稱更改爲特定的時間。我的代碼到目前爲止是這樣的:JS while循環更改值

所有添加的代碼,是我窮人試圖使它工作,只是爲了讓你知道我的意思。

 var offset = 0, 
     xPos = 0, 
     yPos = 0, 
     item_number = 0; //added code 

$(document).ready(function(){ 


    while(item_numer<5) { //added code 
     $(".item" + item_number).draggable({ //added code, the "item" has to be shown on the website as "item0". 

     containment: '#house_wall1', 

     drag: function(){ 
      offset = $(this).position(); 
      xPos = offset.left; 
      yPos = offset.top; 
      $('#posX').text('x: ' + xPos); 
      $('#posY').text('y: ' + yPos); 
     }, 

     // Find original position of dragged image. 
     start: function(event, ui) { 
      // Show start dragged position of image. 
      var Startpos = $(this).position(); 
      $("div#start").text("START: \nLeft: "+ Startpos.left + "\nTop: " + Startpos.top); 
     }, 

     // Find position where image is dropped. 
     stop: function(event, ui) { 
      // Show dropped position. 
      var Stoppos = $(this).position(); 
      $("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top); 
     } 
    }); 
    item_number++; 
    } 
}); 
+0

您的while循環有一個錯字:'while(item_numer <5)'。 'item_numer'總是未定義的,我相信總是評估爲<5。 –

+0

是的,我現在這樣做,謝謝,但它更多的是我不明白的語法。比如JS怎麼可能呢? – user3287771

回答

1

您正在儘快結束}

傳遞給它的.draggable()Object的文字實際上拉伸了幾行,直到底部附近的第一個});。循環應該圍繞它的全部。

$(document).ready(function(){ 
    while (item_number < 5) { 
     $('.item' + item_number).draggable({ 
      // around 20 lines 
     }); 

     item_number++; // increment counter 
    }     // and end of loop 
}); 

雖然,計數器可能沒有必要。由於您使用的是class選擇器,因此可以重複使用class名稱,並且.draggable()將應用於每個匹配的元素。

$(document).ready(function() { 
    $('.item').draggable({ 
     // ... 
    }); 
}); 
+0

現在的代碼如何? :)我已經嘗試了你所說的話 – user3287771

0

您是否僅僅在item_number上缺少增量?

while(item_numer<5) { 
    $(".item" + item_number).draggable({ /* stuff */ }); 
    item_number++; 
} 
+0

我補充說,但它仍然不起作用,是我的代碼正確的語法?謝謝 – user3287771

+0

不,它不是。您沒有正確地關閉上述代碼片段的第二行中的對象文字或函數調用。 – dontGoPlastic

+0

哦,我沒有看到你的item_number ++在最底部......這不是正確的位置。除了語法錯誤之外,您需要在while循環_中增加_,否則您將永遠不會逃避它。 – dontGoPlastic