の要素をソートするために表示されます。jQueryのは、私はUIの要素のリストをソートしようとしているランダム
$('.stuff').sort(function(a,b) {
a = $(a).attr('data-date');
b = $(b).attr('data-date');
console.log(a + " > " + b);
console.log(a > b);
return a >= b;
}).appendTo('#stuff_container');
私はそこにログインを置く場合は、HTMLが
<div class='stuff' data-date='1278395142'>...</div>
<div class='stuff' data-date='1378395142'>...</div>
ようになり、私は比較が真であるときtrueを返す、それが正しく比較をしているのを見ることができます。しかし、ソートを実行するUIでは、要素はランダムに表示されます。このコードを繰り返し実行すると、順序がランダム化され続けます。私は、data-attrsがすべて順不同であることを確認することで、デバッグコンソールでこれを確認できます。
ここで何が起こっているのかについてgoogには言及がありません。私は明日jQueryを深く掘り下げますが、私はこれをそこに投げ捨てると思っています。 jQuery 1.4.2(ええ..)ありがとう!
はちょうど彼らがいない数値で、lexigraphicallyソートすることがあります注意してください。無作為化しても問題はないが、それでもなお問題はない。 –
デイブが言ったように、あなたは数字ではなく文字列を比較しています。それらを整数にキャストするために '+'を前に置くことはできません。 – mowwwalker
あなたのコンソールとそれを実行しているDOMの出力は役に立ちます...多分jsfiddleに載せていますか? –