1

いくつかのdivを作成するためにいくつかのPOSTリクエストを行い、その上でクリックイベントをリッスンしてイベントをトリガーします。Leetは、これらの新しく作成されたdiv'.mydiv'を取得します。$('#mydiv')。on('click' ..)はオンザフライで作成されるため、使用できません。

$(document).click(".mydiv", function(){
            //triggers some events
        });

しかし、$(this)は'document'オブジェクトを参照しているため、クリックされたdivを取得して、関連するイベントをトリガーすることはできません。どうやってやるの ?

編集:最初にそれらのdivを作成する関数を呼び出すので、非常に興味深いようです。これは、クリックリスナーを呼び出すまさにこの関数にあります。これらの条件では:$(document).on( "click"、 "。mydiv"、...)は機能しません。しかし、後者をhtmlページ内に直接配置すると、正常に機能します。(少なくとも、jqueryバージョンの問題ではありません)

4

3 に答える 3

1
$(document).on("click", ".mydiv", function(){
        //triggers some events
});

http://api.jquery.com/on/

Direct and delegated eventsその部分を読む

//  doc or Parent   |    event   |  dyn. created el 
$(    document    ).on( "click"  ,     ".mydiv",      function(){
        //triggers some events
});
于 2013-02-08T12:45:38.623 に答える
0

JQuery には、このような状況でセレクターにイベントをバインドする方法があります。

.live('event', 'handler to be executed') : Attach an event handler for all elements which match the current selector, now and in the future.

このフィドルをチェックしてください:http://jsfiddle.net/ff5UJ/

于 2013-02-08T13:41:10.547 に答える
0

また、試すことができます:

$(".mydiv").live("click", function(){
            //triggers some events
        });
于 2013-02-08T12:51:05.813 に答える