2

dataTablesが入力された大きなテーブルのあるページがあります。
複数のテーブルを表示する必要があるため、テーブル全体とそのコンテナを削除して新しいテーブルを再初期化するたびに、テーブルを更新して再度ロードすると、すべてのイベントリスナーが表示されなくなります。マウスを数回クリックするだけで機能し、正しく機能しません。
すべての関数をピラミッド順にネストして、1つまたは2つの主要な関数で下部の関数を呼び出すことができるようにしますが、それらを呼び出すことも機能しませんでした。
だから私はjqueryを使ってスイッチを入れました.onが、うまくいきませんでした。
これが例としての私の.on関数の1つです:

$('body #dataTable tbody').on('blur keyup', 'div.confirm-edit #tmp', function(e){
    if(e.type === 'blur' || (e.type === 'keyup' && e.which === 13)){
        confirmCurrentActive();
    }
    if(e.type === 'keyup' && e.which === 27){
        cancelCurrentActive();
    }
}); 

だから私はここにいて、これを解決する方法がわかりません

4

1 に答える 1

1

ロードからページで常に使用できる要素にセレクターをフックする必要があります。要素を削除/追加する場合、tableこれは使用したいものではないため、次の代わりに:

$('body #dataTable tbody').on(...

使用する:

$('body').on(...

これは機能しますが、コンテナなどのように、ページの読み込み後に動的に追加しないbody親要素に最も近いものに変更する必要があることに注意してください。tablediv

于 2013-01-27T13:07:28.367 に答える