2017-05-18 9 views

答えて

0

短い答えは:できません!並べ替え機能を完全に変更する唯一の方法は、ordering: falseを設定し、テーブルを再初期化することです。

しかし、いくつかのjQueryの魔法では、各<th>ループスルー、イベント、unbind()を保存することができますし、再び必要にソートする場合、次にその<th>年代に保存されたイベントを再接続します。これは簡単な作業ではありません。各列には3つのイベントがあります:click,keypressおよびselectStart.dtです。さらに、各イベントは、unbind()のときに破壊されるため、深くクローンされなければなりません。ここで

はチェックボックスがクリックされたときにこれを行うための例です:

var storedEvents; 
$('#sort').change(function() { 
if (!$(this).is(':checked') && storedEvents) { 
    $('#example thead th').each(function(index, th) { 
     for (var event in storedEvents[index]) { 
     $(th).bind(event, storedEvents[index][event][0]) 
     } 
    }) 
} else { 
    storedEvents = []; 
    $('#example thead th').each(function() { 
     storedEvents.push($.extend(true, {}, $._data(this, "events"))); 
     $(this).unbind(); 
    }) 
} 
}) 

デモ - >http://jsfiddle.net/s7uzzkcg/