2

私は大規模なコードベースで作業しており、ユーザーがリンク (つまりaタグ) をクリックするたびにアラートが表示されるように、いくつかの JQuery を作成しようとしています。これは私が書いたものです:

$(document).ready(function() { 
    alert("hey ho!"); 
    $("a").click(function(event){ 
        alert("Hello!"); 
    }); 
});

「ヘイホー!」アラートが表示されるので、JQuery が動作しています。現在、このファイルのリンクは実際には HTML コードではなく、他の JavaScript によって挿入されています。それらを DOM 要素として出力して、コンソールに表示できます。

<a style="..." href="...">

それらは内部リンクであり、クリックすると正しい場所にジャンプします。ただし、アラートはありません。何が問題なのですか?どうすればこれをデバッグできますか?

4

3 に答える 3

8

新しい要素もイベントを受け取ることができるように、委譲で onを使用します。

$(document.body).on('click',"a",function(event){ 
    alert("Hello!"); 
}); 
于 2013-09-06T19:56:07.777 に答える
0

私は今週それを実証するためにフィドルを作り、質問に答えました:

http://jsfiddle.net/KjJXf/2/

これは、.onとの使用法を示しています.off

を実行する.onと、ロード可能な新しい HTML を含め、イベントがページで「ライブ」になります。

于 2013-09-06T20:00:48.220 に答える
0

リンクを挿入するときにクリックイベントをバインドし、リンクを挿入するコードの直後に次のコードを配置できます。

$('a').unbind('click'); // to unbind from all previous a tags

/// bind to all again
$('a').on('click',function(){
    alert('hello');
});

1.9 より前のバージョンの jQuery を使用している場合は、次を使用できます。

/// bind to all again
    $('a').live('click',function(){
        alert('hello');
    });
于 2013-09-06T20:02:19.563 に答える