0

テーブルにはプラグインの keyTables と jeditable を使用します。

グリッドをナビゲートし、return で jeditable をアクティブ化できます。ただし、セルを一度アクティブにすると、セルを1回クリックするだけでjeditableを有効にできます。

エラーが発生しました。

http://datatables.net/release-datatables/extras/KeyTable/editing.html

これはデモです。正常に動作します。

私のフィドル: http://jsfiddle.net/jGC4J/

これは、デモ コードと私が使用するコードです。

$(document).ready( function () {
var keys = new KeyTable( {
    "table": document.getElementById('example')
} );

/* Apply a return key event to each cell in the table */
keys.event.action( null, null, function (nCell) {
    /* Block KeyTable from performing any events while jEditable is in edit mode */
    keys.block = true;

    /* Initialise the Editable instance for this table */
    $(nCell).editable( function (sVal) {
        /* Submit function (local only) - unblock KeyTable */
        keys.block = false;
        return sVal;
    }, { 
        "onblur": 'submit', 
        "onreset": function(){ 
            /* Unblock KeyTable, but only after this 'esc' key event has finished. Otherwise
             * it will 'esc' KeyTable as well
             */
            setTimeout( function () {keys.block = false;}, 0); 
        }
    } );

    /* Dispatch click event to go into edit mode - Saf 4 needs a timeout... */
    setTimeout( function () { $(nCell).click(); }, 0 );
} );
} );

コードとプラグインは同じです。ワンクリックだけでなく、return イベントでのみセルを編集できるはずです。

何か案は?

4

1 に答える 1

0

単純..

追加

 $(nCell).editable('destroy');

/* Apply a return key event to each cell in the table */
            keys.event.action( null, null, function (nCell) {
                /* Block KeyTable from performing any events while jEditable is in edit mode */
                keys.block = true;

                /* Initialise the Editable instance for this table */
                $(nCell).editable( function (sVal) {
                    /* Submit function (local only) - unblock KeyTable */
                    keys.block = false;
                    // INSERT HERE //
                    return sVal;
                }, { 
                    "onblur": 'submit', 
                    "onreset": function(){ 
                        /* Unblock KeyTable, but only after this 'esc' key event has finished. Otherwise
                         * it will 'esc' KeyTable as well
                         */
                        setTimeout( function () {keys.block = false;}, 0); 
                    }
                } );

                /* Dispatch click event to go into edit mode - Saf 4 needs a timeout... */
                setTimeout( function () { $(nCell).click(); }, 0 );
            } );

それを機能させます。

于 2012-11-27T19:51:23.213 に答える