-1

私は次の状況にあります、そして私はそれが発火しない理由を本当に持っていません:

$('.tab3').click(function() {
               //console.log("test");
               $('.coda-nav').append('<a href="#" style="position: relative;" id="ref1">blabla</a>');
               $('.coda-nav').append('<a href="#" style="position: relative;" id="ref2">blabla</a>');
               $('.coda-nav').append('<a href="#" style="position: relative;" id="ref3">blabla</a>');
            });

これはかなりうまくいきます。tab3をクリックすると、3つのリンクが追加されます。それから:

$('#ref2').click(function() {
        console.log("test");
    });

plsはref2でクリックして何も起こらなかった理由を教えてくれます!

ありがとうテッド

4

2 に答える 2

3

イベントがバインドされた後にアンカーが追加されるため、つまり、clickイベントをバインドするときに要素は存在しません。

イベント委任を使用して修正できます。

$(".coda-nav").on("click", "#ref2", function() {
    console.log("test");
});
于 2013-03-08T11:38:32.603 に答える
3

見てみましょう: http://api.jquery.com/on/

ハンドラーは、新しく作成された にアタッチされませclick<a>Onその場でアタッチする必要があります。

したがって、次のようになります。

$(".coda-nav").on("click", "#ref2", function() {
    console.log("test");
});
于 2013-03-08T11:39:03.437 に答える