問題
私はTablesorterプラグインを使用して、エンド ユーザーの生活を改善しています。「スクローラー」ウィジェットと「フィルター」ウィジェットを同時に有効にするのに数時間費やしました。問題は、両方が有効になっている場合、ドロップダウン セレクターがテーブルの結果をフィルター処理できないことです。
問題を説明するためにフィドルを作成しました。
回避策
change
(私は思う)ドロップダウン セレクターのイベントでイベント リスナーが壊れていることに問題を絞り込みました。
ドキュメントによると、現在のフィルターを取得するためにいくつかの方法が利用可能です。
私が実行すると:
$.tablesorter.getFilters( $('table') );
フィルター値の配列を返します。ただし、ドロップダウン セレクターは常に空の文字列です。
一方、実行すると:
$.tablesorter.setFilters( $('table'), [ 'Some Value', '', '', '' ], true );
その後、フィルターが更新され、テーブルが期待どおりにフィルター処理されます。
最終的には、独自のイベント リスナーを作成し、フィルターを更新して、新しいパラメーターで検索しました。
$('someselector').on('change', 'select', function(event) {
var table = $('sometableselector'),
filters = $.tablesorter.getFilters( table );
filters[Number($(this).attr('data-column'))] = $(this).val();
$.tablesorter.setFilters( table, filters, true );
});
質問
バグを見つけましたか、それとも何か間違ったことをしているだけですか?