2016-02-26 53 views
1

我試圖創建一個簡單的系統,它將使用jQuery將網格框定位在網格系統中。Jquery .each()如果語句不按預期工作

目前進展

我已創建網格定位系統,它通過側定位他們側。

  var XPosition = 0; 
      var YPosition = 0; 

      $(".boxes").each(function() { 
       $(this).css("left", XPosition); 
       $(this).css("top", YPosition); 
       $(this).css("height", $(".boxes").width()); 

       if (XPosition += $(this).width() < $("#gridCon").width()) { 
        XPosition += $(".boxes").width()-1; 
        console.log($("#gridCon").width()); 
        console.log(XPosition); 
       } else { 
        console.log(YPosition); 
        XPosition = 0; 
        YPosition += $(".boxes").height(); 
       } 

的問題

網格超出這是不期望的屏幕寬度。我厭倦了創建一個旨在重置左側位置並將其放在新行上的if語句。然而if語句似乎並沒有被正確地運行,因爲我似乎並沒有能夠得到else語句

的jsfiddle -https://jsfiddle.net/wLoqx4mj/

+0

您遞增x向位置兩次 – charlietfl

+0

喔親愛的,我將它添加在IF語句爲好,車現在 –

+0

還要注意''(「。boxes」).width()'將總是返回第一個值...你想要循環內的實例 – charlietfl

回答

0

猜你需要額外的對括號在第一線if-condition

if ((XPosition += $(this).width()) < $("#gridCon").width()) { 
        XPosition += $(".boxes").width()-1; 
        console.log($("#gridCon").width()); 
        console.log(XPosition); 
       } else { 
        console.log(YPosition); 
        XPosition = 0; 
        YPosition += $(".boxes").height(); 
       } 

Fiddle

+0

當然,我很愚蠢:)謝謝你,你知道爲什麼它現在增加兩次? –

+0

一列中應該有多少列? –

+2

我很抱歉,我將它添加到了如果使用+ =的情況下,我應該只使用+。乾杯 –