Dynamic Jquery未应用于上下文菜单中创建的动态元素

Dynamic Jquery未应用于上下文菜单中创建的动态元素,dynamic,contextmenu,jquery-on,Dynamic,Contextmenu,Jquery On,我有一个包含$('a')的脚本 在我的contextmenu函数中,我创建了一个带有链接的列表 $(function () { $('a').on('contextmenu', function (event) { $("<ul id='menu'></ul>") .append('<li><a href="#" class="test">Test 1</a></li>') .

我有一个包含
$('a')的脚本
在我的contextmenu函数中,我创建了一个带有链接的列表

$(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;
    });
$(函数(){
$('a')。在('contextmenu',函数(事件)上{
$(“”)
.append(“
  • ”) .append(“
  • ”) .附件(“正文”) .css({顶部:event.pageY+“px”,左侧:event.pageX+“px”}); 返回false; });
    }))

    但是,单击列表中的链接时,不会触发第一段代码(单击事件)。但是,它会为页面上的每个其他链接触发。我如何解决这个问题,使我的脚本可以在动态元素上运行,这只是另一个脚本的翻版

    在$(document)上调用jQuery并提供“selector”选项将回调绑定到与选择器参数匹配的动态添加元素

    就是这个,

    $(document).on('click', 'a', function () {
      alert( $(this).attr('class') ); 
    });
    
    与此相反:

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

    你试过这个吗?是的,我使用的是“on”函数,而不是“live”函数,但是请注意,在回调中,您希望作为“this”的动态元素的一个包含元素上的应答调用
    on
    。所以类似的东西应该可以工作:
    $(document).on('click','a',function(){…})。也尝试过,但不起作用…似乎起作用: