0

動的に生成された DOM で「クリック」を使用しようとしています。live または on を使用できることはわかっていますが、動的に生成されたコンテンツが複数の動的に生成されたコンテンツ内にあり、live/on が機能しなくなりました。

したがって、私のコードは次のようになりますが、El_b の前に要素が追加されています。

El_a = document.createElement("li");
El_b = document.createElement("a");
El_b.id = "myEl";
El_a.appendChild(El_b);

これを機能させる方法はありますか?

PS: livequery jQuery プラグインも試しました。

4

2 に答える 2

1

El_b のクリック イベントに関数をバインドする場合は、次のようにします。

$(El_b).click(function() {
    // Your code here
});

しかし、あなたはon私が思うに使うことができます。複数の DOM 要素を作成する場合でも。documentまたはを使用できますbody。例 :

$('body').on('click', 'li a.my_class', function() {
    // Your code here
});
于 2012-11-28T08:45:08.853 に答える
1

委任に関する限り、少なくとも 1 つの静的 DOM 要素を常に利用できますdocument。委任するより近い要素が見つからない場合は、これに委任します。

ただし、ここでは委任は必要ないようです。要素を作成してリスナーをアタッチするプロセス全体は、次のように要約できます。

var a = $("<li/>").append($("<a/>").attr("id", "myElement")).click(function () {
    alert('hello');
});

あなたが言うように、オブジェクトの作成を変更できない場合でも、ID で選択してリスナーをアタッチできます。

$('#myElement').click(function () {
    alert('hello');
});

また、それらはドキュメント フラグメントであり、適切なドキュメントではなく、DOM ではありません。

于 2012-11-28T08:44:13.027 に答える