0

jqueryデータテーブルを使用してテーブルの行でダブルクリックイベントを処理しようとしています ご覧のとおり、fnDrawCallback内、on()または直接dblckick()で準備されたドキュメント内でいくつか試してみましたが、動作しません;-(テーブル要素に設定しましたが、それでは行要素を取得できません;-(

コードは次のとおりです。

$(document).ready (function() {
$("#wfTable").dataTable( {
    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "server/workflows",
    "bScrollInfinite": true,
   "bScrollCollapse": true,
   "sScrollY": "200px",
   "iScrollLoadGap": 50,
   "aoColumns": [
    { "sTitle": "Id",   "mData": "id" },
    { "sTitle": "Label", "mData": "label" },
    { "sTitle": "Name" ,"mData": "name" }],
    "fnDrawCallback": function (oSettings) {
        var oTable = $('#wfTable TR');
        var theData = oTable.find('TR');
        theData.unbind();
        //  On row click, go to single-view page
        theData.dblclick( function (e) {
            var iPos = oTable.fnGetPosition( this );
            var aData = oTable.fnGetData( iPos );
            var iId = aData[0];
        });
    }
});/*fnServerData  bJQueryUI true*/

//$('#wfTable').dblclick( function (e) {
/*$('#wfTable td').on("dblclick", function() {
    //target = $(e.target);

    //while(target.get(0).tagName != "TR"){
    //  target = target.parent();
    //}
    var iPos = oTable.fnGetPosition( this );
    var aData = oTable.fnGetData( iPos );
    var iId = aData[0];

    window.location.href = 'workflow/' + iId;
});*/

});

4

1 に答える 1

0

私はこれを見つけました:

    $('#wfTable').dblclick( function (e) {
    target = $(e.target);

    while(target.get(0).tagName != "TR"){
        target = target.parent();
    }

    var iPos = oTable.fnGetPosition( target.get(0) );
    var aData = oTable.fnGetData( iPos );
    var iId = aData.id;

    window.location.href = 'workflow/' + iId;
});

とにかくあなたのコードも動作する必要があります

于 2013-08-26T21:24:03.093 に答える