user-upload
3,547
回編集
(tr.unsortable, tr.sorthiddenを追加) |
(data-sort-type="number" の動作をデフォルトに近づける(第6回総選挙#速報発表の不具合を修正)) |
||
(同じ利用者による、間の1版が非表示) | |||
7行目: | 7行目: | ||
var $sortableTables = $content.find('table.sortable'); | var $sortableTables = $content.find('table.sortable'); | ||
if ($sortableTables.length) { | if ($sortableTables.length) { | ||
$sortableTables.removeClass('sortable'); | $sortableTables.removeClass('sortable jquery-tablesorter'); | ||
$.getScript(mw.util.wikiScript() + '?title=MediaWiki:Jquery.tablesorter.min.js&action=raw&ctype=text/javascript', function() { | $.getScript(mw.util.wikiScript() + '?title=MediaWiki:Jquery.tablesorter.min.js&action=raw&ctype=text/javascript', function() { | ||
60行目: | 60行目: | ||
}); | }); | ||
} | } | ||
}); | |||
$.tablesorter.addParser({ | |||
id: 'number', | |||
is: $.tablesorter.isDigit, | |||
format: function(s) { | |||
var i = parseFloat(s.replace( /[, ]/g, '').replace('\u2212', '-')); | |||
return isNaN(i) ? 0 : i; | |||
}, | |||
type: 'numeric' | |||
}); | }); | ||
/* tablesorterに必要なテーブル要素を生成する */ | /* tablesorterに必要なテーブル要素を生成する */ | ||
$sortableTables.each(function() { | $sortableTables.each(function() { | ||
/* 標準のソート機能が読み込まれてしまった場合に、割り当てられたアクションを取り除く */ | |||
if (this.tHead) { | |||
$('> th', this.tHead.rows).off('keypress click'); | |||
$(this.tBodies[0]).prepend(this.tHead.rows); | |||
$(this.tHead).remove(); | |||
} | |||
var rows = this.tBodies[0].rows, $tr; | |||
/* thead要素 */ | /* thead要素 */ | ||
var $thead = $('<thead></thead>'); | |||
while (rows.length) { | while (rows.length) { | ||
$tr = $(rows[0]); | $tr = $(rows[0]); | ||
79行目: | 96行目: | ||
$cell.data('sorter', false); | $cell.data('sorter', false); | ||
} else if ($cell.data('sortType') === 'number') { | } else if ($cell.data('sortType') === 'number') { | ||
$cell.data('sorter', ' | $cell.data('sorter', 'number'); | ||
} | } | ||
}); | }); | ||
88行目: | 105行目: | ||
/* tfoot要素 */ | /* tfoot要素 */ | ||
for (var i = rows.length - 1; 0 < i; i--) { | if (!this.tFoot) { | ||
var $tfoot = $('<tfoot></tfoot>'); | |||
for (var i = rows.length - 1; 0 < i; i--) { | |||
if ($(rows[i]).children('td').length) break; | |||
$tfoot.prepend(rows[i]); | |||
} | |||
$tfoot.appendTo(this); | |||
} | } | ||
var $rows = $(rows); | var $rows = $(rows); |