あなたはhttp://jsfiddle.net/6gnAF/1/で問題を見ることができます
リスト要素にほとんど問題はありません。
私は次のような非常に単純な順序なしリストを使用しています。
<div>
<ul>
<li class='button'>Element 1</li>
...
<li class='button'>Element N</li>
</ul>
</div>
(リスト要素の数Nは、ページごとに異なります。)
div
を含むは幅ですul
。696 px
リスト要素li
、、は水平方向に整列され、divの幅の終わりに達すると、新しい行に続きます。
すべての行.left
の最初にクラスを追加し、最後の行にクラスを追加したかったのです。li
.right
$('li').each(function() {
var liWidthOut = $(this).width();
totalWidth += liWidthOut;
if (totalWidth >= divWidth) {
$(this).addClass("left");
$(this).prev().removeClass("middle").addClass("right");
totalWidth = liWidthOut;
}
else {
$(this).addClass("middle");
}
});
私はそれをJqueryで管理しましたが、少し問題があります。
あなたはhttp://jsfiddle.net/6gnAF/1/で問題を見ることができます
問題は、クラスが追加される要素の幅を変更する.left
ため、新しい行が作成されることがあり、最後のli要素が。ではなくクラスを持つ最初の要素になります。.right
li
.right
.left
どうすればこれを修正できますか?
(文法上の誤りでごめんなさい)