2014-03-13 48 views
0

如何概括下面的代碼,以便適用於任意數量的列?推廣代碼與任意列數一起工作

if (totalColls==4){ 
    $(aclst).eq(0).css({"top":itlh*0+"px", "left":itlwi*0+"px"}); 
    $(aclst).eq(1).css({"top":itlh*0+"px", "left":itlwi*1+"px"}); 
    $(aclst).eq(2).css({"top":itlh*0+"px", "left":itlwi*2+"px"}); 
    $(aclst).eq(3).css({"top":itlh*0+"px", "left":itlwi*3+"px"}); 

    $(aclst).eq(4).css({"top":itlh*1+"px", "left":itlwi*0+"px"}); 
    $(aclst).eq(5).css({"top":itlh*1+"px", "left":itlwi*1+"px"}); 
    $(aclst).eq(6).css({"top":itlh*1+"px", "left":itlwi*2+"px"}); 
    $(aclst).eq(7).css({"top":itlh*1+"px", "left":itlwi*3+"px"}); 

    $(aclst).eq(8).css({"top":itlh*2+"px", "left":itlwi*0+"px"}); 
    $(aclst).eq(9).css({"top":itlh*2+"px", "left":itlwi*1+"px"}); 
    $(aclst).eq(10).css({"top":itlh*2+"px", "left":itlwi*2+"px"}); 
    $(aclst).eq(11).css({"top":itlh*2+"px", "left":itlwi*3+"px"}); 
} 
+1

你可以請進一步解釋你想要做什麼?就目前而言,你提出的問題並沒有多大意義。 –

+0

@KabirUddin我不知道下面的答案upvote是否來自你,但如果答案解決了你的問題,請給它一個綠色的勾號,以便David Conde收到幫助你的合適獎勵。 – mickmackusa

回答

1

這應該適用於任何數量的行或列。

  • jQuery的$(aclst)。每個()函數迭代的所有元素,並提供適當的索引和DOM節點的回調函數。
  • Math.floor(索引/ totalColls)調用返回的行號,從0開始
  • 指數%totalColls調用返回的列編號,從0開始

這裏的迭代所有元素時的外觀。

$(aclst).each(function(index, element) { 

    $(element).css({ 
     "top" : (itlh * Math.floor(index/totalColls)) + "px", 
     "left": (itlwi * index % totalColls) +"px" 
    }); 

}); 
+0

你的問題解密技能是驚人的! –

相關問題