データ値によってソートされるので、ソートはピリオドのない数値に設定されます。
1.14 --> 114 (smallest)
1.0.1.2 --> 1012
1.10.0 --> 1100 (largest)
あなたはdata-value
が不在属性、またはバージョン番号でピリオドを残しておくと、それは正しく並べ替えます。下のフィドルで実証されているように。
https://jsfiddle.net/t7xhkkjc/
編集あなたは彼らに
をオーバーライドすることで、元のソートタイプを失わないように、正しくバージョン番号
// Credit for function http://stackoverflow.com/a/7717160/769237
var customTypes = [{
name: 'version',
defaultSortDirection: 'descending',
match: function(a) {
return a.match(/([1-9]+\.?)+/g);
},
compare: function (a, b) {
var i, cmp, len, re = /(\.0)+[^\.]*$/;
a = (a + '').replace(re, '').split('.');
b = (b + '').replace(re, '').split('.');
len = Math.min(a.length, b.length);
for(i = 0; i < len; i++) {
cmp = parseInt(a[i], 10) - parseInt(b[i], 10);
if(cmp !== 0) {
return cmp;
}
}
return a.length - b.length;
}
}];
をソートするために、カスタムソート機能を追加する必要が
var customAndOriginalTypes = Sortable.types.concat(customTypes);
Sortable.setupTypes(customAndOriginalTypes);
また、thを無効にする必要がありますあなたのテーブルからdata-sortable
を取り除くことによって自動初期化。これにより、ソート機能をテーブルに追加する前に、新しいソートタイプを追加することができます。
あなたは、私は、データ値を使用していた当初
var yourTable = document.querySelector('#your-table');
Sortable.initTable(yourTable);
https://jsfiddle.net/p4w5bup3/
でテーブルの上に並べ替え初期化することができます。次の値に失敗します。 1.9.2.0 1.8.0.1 1.14.2.0 https://jsfiddle.net/st9zhbc0/ – localhost
おそらくテーブルの例を投稿すると役立つでしょうか? –
このjsFiddleを使用してください。 https://jsfiddle.net/st9zhbc0/ – localhost