1

$('a').on('click', function () {alert($(this).attr('class')); }); コンテキストメニュー機能で、リンク付きのリストを作成するスクリプトを持っています

$(function () {
$('a').on('contextmenu', function (event) {
        $("<ul id='menu'></ul>")
        .append('<li><a href="#" class="test">Test 1</a></li>')
        .append('<li><a href="">Test 2</a></li>')
        .appendTo("body")
        .css({ top: event.pageY + "px", left: event.pageX + "px" });
        return false;
    });

});

ただし、コードの最初の部分 (on click イベント) は、リスト内のリンクがクリックされたときに起動しません。ただし、ページ上の他のすべてのリンクに対して起動します。スクリプトが動的要素で機能するように、これを修正するにはどうすればよいですか

4

1 に答える 1

2

別のSO questionの焼き直しです。

$(document) でjQueryonメソッドを呼び出し、'selector' オプションを指定すると、selector パラメーターに一致する動的に追加された要素にコールバックがバインドされます。

つまり、これは次のとおりです。

$(document).on('click', 'a', function () {
  alert( $(this).attr('class') ); 
});

これの代わりに:

$('a').on('click', function () {
  alert($(this).attr('class')); 
});
于 2013-10-18T20:17:22.867 に答える