2014-02-21 125 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