2

呼び出されるこのようなコードがあるとします$(document).ready()

$(".someClass").click(function(){
    //do something 
});

後で、 class で要素を作成するための jquery がありますsomeClass。上からクリックを自動的にアタッチする方法はありますか、それとも手動で再度アタッチする必要がありますか?

4

4 に答える 4

3

はい。可能です。

$("body").on("click", ".someClass", function() {
    // ...
});
于 2012-04-29T17:28:45.280 に答える
3

最新バージョンの jquery を使用し、on

$(document).on('click', '.someClass', function(e){
    //do something 
});

Liveは非推奨ですが、とにかく使用できます (推奨されません)。

$('.someClass').live('click', function(e){
    //do something 
});
于 2012-04-29T17:28:58.273 に答える
1

live新しい要素もリッスンするがあります

$(".someClass").live('click', function(){
    //do something 
});

ただし、jquery 1.7 の時点で廃止されました。代わりに使用することをお勧めしますon

ただし、 を使用するにonは、ハンドラーをバインドする要素のコンテナーが必要です。もちろん、bodyorを使用することもできますdocumentが、より具体的な要素を使用することをお勧めします

$(".someClassContainer").on('click', '.someClass' function(){
        //do something 
    });
于 2012-04-29T17:28:04.903 に答える
1

これを行うには 2 つの簡単な方法があります。1 つ目は次の方法ですon()

$(".someClassParentElementPresentInTheDOMonDOMReady").on('click','.someClass',
    function(){
        //do something 
    });

もう 1 つは、新しい要素の作成時にクリック ハンドラを割り当てるだけです。どのようにしているのかわかりませんが、例を以下に示します。

$('#addElement').click(
    function(){
        var newElem = $('<div />',{'class' : 'someClass'}).click(function(){
            // do something }).appendTo('.someClassParentElementPresentInTheDOMonDOMReady');

参考文献:

于 2012-04-29T17:28:18.790 に答える