並べ替え可能なテーブルを作成していますが、テーブルヘッダーの「並べ替え順序」アイコンを更新する必要があります。
私のコードが何をしているのかをよりよく理解できるように、ここに少し情報があります。
コードはクリックイベント内から実行されており、クリックされて$(this)
いるテーブルヘッダーセルを参照しています。
テーブルヘッダーセルには3つのスパンがあります。ラッパー、テキストスパン、およびアイコンスパン。これがどのように見えるかです
<span class='ui-button ui-widget ui-state-default ui-button-text-icon-secondary'>
<span class='ui-button-text'>text</span>
<span class='ui-button-icon-secondary ui-icon ui-icon-triangle-2-n-s'></span>
</span>
collection
からのリターンです$("thead:first th")
これがアイコンの切り替えを行う私のコードです。
var new_class = sort_info.order == "asc" ? "ui-icon-triangle-1-n" : "ui-icon-triangle-1-s";
collection.find(".ui-icon").removeClass("ui-icon-triangle-1-n ui-icon-triangle-1-s ui-icon-triangle-2-n-s").addClass("ui-icon-triangle-2-n-s");
$(this).find(".ui-icon").removeClass("ui-icon-triangle-1-n ui-icon-triangle-1-s ui-icon-triangle-2-n-s").addClass(new_class);
ご覧のとおり、すべてのヘッダーアイコンセルを選択し、存在する可能性のあるアイコンクラスをすべて削除してから、該当するクラスを再度追加します。次に、クリックしたセルのアイコンを取得し、アイコンクラスを削除して、適切なクラスを適用します。
これはこれを行うための最良の方法ですか?それは動作します..そしてそれは約7ミリ秒(Windows 7、FF6.0)で実行されますが、これは私には問題ありません..多くの作業が行われているように見えます。
何かご意見は?