0

私はかなり長い間これに悩まされてきました。

テーブルソーターのページネーションにより、非表示の行がテーブルから完全に削除され、ソートが速くなります。各行のチェックボックスを希望どおりに機能させることができませんでした。

これが私のjsfiddleです-> http://jsfiddle.net/NcqfY/3/

変数トリガーをクリックしてテーブルを表示します

基本的に私がやりたいことは、選択したすべての行の ID を取得し、それらを配列にプッシュすることselectedIDです。selectedIDレポートが作成されたとき (または「レポートの作成」ボタンがクリックされたとき) の空の配列。ボタンをクリックした後、テーブル内のすべてのチェックボックスがオフになることを願っています。次のコードを使用しています。

$('table.tablesorter tbody tr').find('input[type=checkbox]').prop('checked', false); // I can only uncheck the boxes in current page

ただし、現在のページのチェックボックスをオフにすることしかできず、非表示のページは含めません。これは、選択した行の正しい ID を取得するのに本当に苦労します。

誰でも私を助けることができれば大歓迎です!

4

2 に答える 2

1

JavaScript の一部にエラーがありました:

$('table.tablesorter tbody').on("click", "tr", function(event) {
    if (event.target.type != 'checkbox') {
        $(':checkbox', this).trigger('click');
        var id = $(this).attr('id');
        if (selectedID.indexOf(id) == -1) {
            selectedID.push(id);
        } else {
            var index = selectedID.indexOf(id);
            selectedID.splice(index, 1);
        }
    }
});

私はあなたのためにそれらを修正しました、そしてそれはうまくいくようです:
!==--> !=
===--> ==
var id = $(this).attr('id')-->var id = $(this).attr('id');

編集:上記は私にとってはうまくいかなかったので、それが問題だと思いましたが、あなたの質問に答えるために:

$($(".tablesorter")[0].config.rowsCopy).each(function() {
    $(this).find('input[type=checkbox]').prop('checked', false);
});

これにより、非表示のチェックボックスも含め、テーブル内のすべてのチェックボックスがオフになります

于 2012-08-08T22:08:23.530 に答える
1

tablesort の pager のドキュメントによると、これを行うことができます。

var t = $('table')

// disabling the pager will restore all table rows 
t.trigger('disable.pager'); 

// ---do your thing---

// restore pager 
t.trigger('enable.pager');

ページャーのサイズセレクターを省略しない限り、これはうまくいくようです (省略した場合、エラーが発生します)。

JSFiddle を更新しました: jsfiddle.net/NcqfY/6/

于 2012-08-08T22:18:47.643 に答える