0

私は jQuery を使用して多くのイベント ドリブン プログラミングを行ってきましたが、イベント ハンドラーは最も近い静的な親コンテナーにアタッチする必要があると言われました。ただし、イベントリスナーをテーブルにアタッチしようとすると、機能しません。ドキュメント全体を見るだけで機能します。これが私が持っているものです:

$(document).on("click", "td", function() {
    //do something
})

ただし、次のようなものをもっと取得したい:

$("#tableID").on("click", "td", function() {
    //do something
})

ただし、2 番目のバージョンは機能しません。テーブルでクリックが検出されることはないと思います。これはなぜでしょうか?

4

2 に答える 2

0

セレクターは文字列でなければならないためです。それを引用符で囲むと、うまくいくはずです。

$('#tableID').on('click', 'td', function() {
    //do something
});

テーブルが AJAX を介してロードされる場合、デリゲート ターゲット ( の 1 つ$()) は、このバインディング コードの実行中にページに存在する要素である必要があります。通常のターゲットはdocument、常にそこにあるためです。しかし、それは DOM ツリーの上位にあるため、ターゲットを選択することが許可されています。

于 2013-04-28T02:20:08.323 に答える