2016-12-09 1 views
2

2人で一緒に働かない理由を理解できません。 私はテーブルソーターでうまく並べ替えるテーブルを持っています。私は素敵なdivのように見えるように行のスタイルを設定し、各行の間にスペースが必要です。私はこれをCSSクラスの空で行い、「静的な」ウィジェットも同様に適用します。これはすべてうまくいきます。並べ替えると、目に見えない間隔の行が残ります。jQueryのtablesorter、staticwidgetとsortListは一緒ですか?

デフォルトのsortListも設定しようとすると問題が発生します。私は以下の異なるコードを試しました。 javascriptとメタデータとして設定しようとしています。 2人は一緒に働くことはありません。静的ウィジェットを無効にする限り、sortListを正常に動作させることができます。しかし、それらが一緒になっていると、行は静的ですが、並べ替えられて並べ替え順序から外れます。

私は静的ウィジェットとsortListを一緒に使用する方法を見つけ出すのに役立つ人はいますか?ありがとうございました!

(私はjQueryの2.14、HTMLのheadにロードtablesorter、staticRowウィジェットとメタデータの.jsのを持っている)

それは一緒にこのように動作しません。

$(document).ready(function(){ 
    $('#myTable').tablesorter({ 
     widgets: ['staticRow'], 
     sortList: [[0,0]] 
    }); 
}); 

しかし、単独で動作しません:

$(document).ready(function(){ 
    $('#myTable').tablesorter({ 
     widgets: ['staticRow'] 
    }); 
}); 

または

$(document).ready(function(){ 
    $('#myTable').tablesorter({ 
     sortList: [[0,0]] 
    }); 
}); 

もこれを試してみました:

$(document).ready(function(){ 
    $('#myTable').tablesorter({ 
     widgets: ['staticRow'] 
    }); 
}); 

<table id="myTable" class="tablesorter {sortlist: [[0,0],[4,0]]}"> 
+0

問題を調査できるように[fiddle](https://jsfiddle.net/)を作成してください。 – EhsanT

+0

私は試しましたが、以前はこれまで使ったことがなく、jsのインストール方法を理解できません。私は使用しているtablesorterのバージョンへのURLを見つけることができません。 (私はフォークされたバージョンを使用していません) – trademonkey

+0

オンラインバージョンがない場合は、単にJavaScriptセクションにコピーして貼り付けることができます。 – EhsanT

答えて

0

問題は、ウィジェットが適用される前にtablesorterがテーブルをソートしていることです。ウィジェットはソート後に行インデックスを設定しています。あなたは小さなテーブルを持っている場合tablesorterがinitialziedた後、最も簡単な解決策は、ソートをトリガーすることであろう(demo

$('#myTable') 
    .tablesorter({ 
    widgets: ['staticRow'] 
    }) 
    .trigger("sorton", [[[0,0]]]); 

あなたは大きなテーブルを持っている場合は、より多くの時間は、初期化の前に必要とされるであろう。この場合、setTimeoutの中にtriggerを追加します。


更新:あなたはこのコードを使用してすべての静的行を隠してからクイックサーチを防ぐことができます。

$('input#search').quicksearch('table tbody tr', { 
    hide: function(){ 
    this.style.display = $(this).hasClass('static') ? "table-row": "none"; 
    } 
}); 

しかし、あなたには、いくつかの本当に大きなギャップ(demo)になってしまいます。

これを修正するには、いくつかのCSSを含める必要があります。インラインスタイル(demo)を無効にするには、!importantフラグを使用する必要があります。

tr[style*="display: none"] + tr.VerticalSpacer { 
    display: none !important; 
} 
+0

ああ、あなたは美しい人間!大変ありがとう! – trademonkey

+0

他にもう1つ問題がありますか?このフィドルで私はクイックサーチ機能を追加しました。ここでの問題は、検索フィールドに "e"と入力すると、 "静的な"行が削除されることです。私のjavascriptは明らかに限られています。ご協力ありがとうございました! https://jsfiddle.net/ku7a3pcx/9/ – trademonkey

+0

ありがとうございます! – trademonkey

関連する問題