9

私のデータテーブルは、dblclick各行に機能を追加しようとしているという事実を除いて、正常に機能しています。これは部分的に機能します。

だから、これは私のコードです:

oTable = $('#example').dataTable({
    "aaSorting": [[ 1, "desc" ]],
    "bJQueryUI": true,
    "sPaginationType": "full_numbers"
});

/* Add a click handler to the rows */

//This highlights the row selected
$("#example tbody").click(function(event) {
        $(oTable.fnSettings().aoData).each(function (){
                $(this.nTr).removeClass('row_selected');
        });
        $(event.target.parentNode).addClass('row_selected');
});

//this attaches a dblclick event on the row
$("#example tr").dblclick(function() {
        var iPos = oTable.fnGetPosition( this );
        var aData = oTable.fnGetData( iPos );
        var iId = aData[1];
        $('#edit'+iId).click(); //clicks a button on the first cell
});

行の強調表示は、テーブルのすべての行で問題ありませんがdblclick、最初のページで最初にレンダリングされた行に対してのみ機能します。データを並べ替え/検索して表示されるデータが変わるとdblclick、最初のページに表示されていない行に対してイベントが機能しません。

誰かがこの謎を解くのを手伝ってくれる?ありがとう

4

3 に答える 3

20

最初の答えはほぼ完璧ですが、機能しないように微調整する必要があります。

jquery apidoc on()[, selector ]のように、以下で行ったようにを追加する必要があります"tr"

$("#example").on("dblclick", "tr", function() {
        var iPos = oTable.fnGetPosition( this );
        var aData = oTable.fnGetData( iPos );
        var iId = aData[1];
        $('#edit'+iId).click(); //clicks a button on the first cell
});
于 2013-03-08T12:42:27.110 に答える
1

これを試して

  $("#example tbody").on("click",function(event) {
        $(oTable.fnSettings().aoData).each(function (){
                $(this.nTr).removeClass('row_selected');
        });
        $(event.target.parentNode).addClass('row_selected');
});


  $("#example tr").on("dblclick",function() {
            var iPos = oTable.fnGetPosition( this );
            var aData = oTable.fnGetData( iPos );
            var iId = aData[1];
            $('#edit'+iId).click(); //clicks a button on the first cell
    });

ページの読み込み時に読み込まれるデータに対して直接イベントを使用できます。使用する必要があるその他のサイズ

于 2013-03-08T11:48:50.500 に答える