我正在尝试使用javascript sort函数按数据属性对div列表进行排序。
HTML
<div class="boxes">
<div data-value="0" class="box">A</div>
<div data-value="2" class="box">B</div>
</div>
的javascript
$('.box').sort(function(a,b){
var an = parseInt(a.getAttribute('data-value')),
bn = parseInt(b.getAttribute('data-value'));
return an - bn;
});
它在Chrome上很有效,除非有超过10个元素:在这种情况下,如果我排序多次,有些元素在它们不应该(当它们的数据值属性相同时)移动。
我有一个jsfiddle那里https://jsfiddle.net/q8ovfp1b/1/解释了这个问题。 如果你在右边的按钮上点击几次,订单一旦设置就不会改变,但是如果点击左边的按钮,一些div会被重新排序,并且它们总是相同的(第一,第二和7日)。
有没有办法避免这种情况?