0

以下のスニペットに示すように、「password-reset-success-message」divを「password-reset」divに動的にロードしています。'password-reset-success-message' divはページの読み込み時に非表示になり、次に示すように'password-reset'divに上書きされます。

    $("#password-reset").html($("#password-reset-success-message").html());

これで、「password-reset-success-message」divに「btnPasswordResetOK」ボタンが表示され、パスワードリセットモーダルダイアログが閉じます。ただし、このclick()イベントはバインドされていません。警告メッセージが表示されません。私はこれらすべてをドキュメントにラップして準備をしています。

     $(document).ready(function(){  

       $("#btnPasswordResetOK").click(function() {

         alert();
       });

    });

注:この質問は私の質問とほとんど同じです。。しかし、それに対する答えはありません。

更新: 非表示のdivでhtmlを更新した後にバインドしましたが、機能します!、以下のコードスニペット

      $("#password-reset").html($("#password-reset-success-message").html());

       $("#btnPasswordResetOK").click(function() {

            alert();
       });
4

2 に答える 2

3

HTMLを追加する親要素に委任します

.on() で jQuery 1.7+ を使用している場合

$("#password-reset").on('click','#btnPasswordResetOK',function(){

})

デリゲート付き

$("#password-reset").delegate('#btnPasswordResetOK','click',function(){

})

使用するメソッドのjQueryドキュメントから

$(selector).live(イベント、データ、ハンドラー); // jQuery 1.3+

$(document).delegate(セレクター、イベント、データ、ハンドラー); // jQuery 1.4.3+

$(document).on(イベント、セレクター、データ、ハンドラー); // jQuery 1.7+

委任することにより、変更されず、バインド時に存在する静的な親要素にイベント ハンドラーをバインドします。リッスンする要素とイベントを指定すると、イベントが発生すると、静的な親要素によって処理されます。

于 2012-11-14T14:40:34.407 に答える
1
$(selector).live(events, data, handler);                // jQuery 1.3+
$(document).delegate(selector, events, data, handler);  // jQuery 1.4.3+
$(document).on(events, selector, data, handler);        // jQuery 1.7+

準備完了イベントがトリガーされたときに、ページにコンテンツがありません。要素とコンテンツを動的に生成するため、live/on イベント ハンドラーを使用する必要があります。

于 2012-11-14T14:38:25.707 に答える