0

私たちのウェブサイトには、html が貼り付けられる「コンテンツ」div が 1 つあります。

たとえば、次のようになります。content.innerHtml = 'huge pile of html with divs and tables'

貼り付けた要素の1つにjqueryイベントハンドラーをアタッチしたいので、これを試しました:

$(document).ready(function () {
    // Handler for .ready() called.
    alert('111');
    $("#PersonalMessageTemplateDropDownModels input").on("click", function (event) {
        alert($(this).text());
    });

});

コードが呼び出されるように、アラートを受け取ります。入力要素は、ID が「PersonalMessageTemplateDropDownModels」の要素の下/内の 5 レベルの深さです

しかし、いいえalert($(this).text());と呼ばれます。

これはうまくいくはずですか、それともhtmlがDOMに入力される方法がこれを妨げているのでしょうか?

4

2 に答える 2

4

id を持つ要素にイベントをデリゲートし、on()PersonalMessageTemplateDropDownModelsを使用して入力タイプの子孫にタグ セレクターを使用します。

$("#PersonalMessageTemplateDropDownModels").on("click", "input", function (event) {
    alert($(this).text());
});

イベントを委譲する要素 (親) が不明または存在しない場合は、代わりに document を使用できます。

$(docuement).on("click", "#PersonalMessageTemplateDropDownModels input", function (event)    {
    alert($(this).text());
});
于 2013-03-06T08:56:40.057 に答える
1

これを試してください私は同じ問題を抱えていますが、このコードは私を解決しました。

$(document).on("click","#PersonalMessageTemplateDropDownModels input", function (event) {
    alert($(this).text());
});
于 2013-03-06T09:05:36.163 に答える