对动态内容使用on()jquery

对动态内容使用on()jquery,jquery,Jquery,我正在尝试在动态添加的内容上使用,我不确定我缺少了什么。我有两个按钮,一个在DIV中创建UL。然后我点击另一个按钮在UL中创建LI。点击任何一个LI,我都会收到一条警告信息,但什么都没有发生 创建ul 创立 $(“#fst”)。单击(函数(){ $(“#ok”).html(“”); }); $(“#snd”)。单击(函数(){ $(“.ul”).html(“一个两个”; }); $(“ul”)。on('click','li.myclass',function(){alert('ok');})

我正在尝试在动态添加的内容上使用,我不确定我缺少了什么。我有两个按钮,一个在DIV中创建UL。然后我点击另一个按钮在UL中创建LI。点击任何一个LI,我都会收到一条警告信息,但什么都没有发生


创建ul
创立
$(“#fst”)。单击(函数(){
$(“#ok”).html(“
    ”); }); $(“#snd”)。单击(函数(){ $(“.ul”).html(“
  • 一个
  • 两个
  • ”; }); $(“ul”)。on('click','li.myclass',function(){alert('ok');})`
    有什么建议吗

    像这样使用

    $(document).on('click', 'ul li.myclass', function(){ 
        alert('ok'); 
    });
    
    或者更好(意见)

    $(“#fst”)。单击(函数(){
    $(“#ok”).html(“
      ”); }); var li=$(“
    • ”; $(“#snd”)。单击(函数(){ $(“.ul”).html(li); }); li.on('click',function(){ 警报(“hi”); });
      为了更好地编写代码,请编写类似的代码

      $("#fst").click(function(){
          $("#ok").html('').append(
              $('<ul>', {'class': 'ul'})
          );
      });
      
      var li = $('<li>', {
          'class': 'myClass', 
          click: function() {
              alert('Hello');
          }
      }),
      
      $("#snd").click(function(){
          $(".ul").html('').append(li);
      });
      
      $(“#fst”)。单击(函数(){
      $(“#确定”).html(“”).append(
      $(“
        ”,{'class':'ul'}) ); }); 变量li=$(“
      • ”{ “类”:“myClass”, 单击:函数(){ 警惕(“你好”); } }), $(“#snd”)。单击(函数(){ $(“.ul”).html(“”).append(li); });
      我使用
      append
      ,因为它比
      innerHTML

      这样使用要快

      $(document).on('click', 'ul li.myclass', function(){ 
          alert('ok'); 
      });
      
      或者更好(意见)

      $(“#fst”)。单击(函数(){
      $(“#ok”).html(“
        ”); }); var li=$(“
      • ”; $(“#snd”)。单击(函数(){ $(“.ul”).html(li); }); li.on('click',function(){ 警报(“hi”); });
        为了更好地编写代码,请编写类似的代码

        $("#fst").click(function(){
            $("#ok").html('').append(
                $('<ul>', {'class': 'ul'})
            );
        });
        
        var li = $('<li>', {
            'class': 'myClass', 
            click: function() {
                alert('Hello');
            }
        }),
        
        $("#snd").click(function(){
            $(".ul").html('').append(li);
        });
        
        $(“#fst”)。单击(函数(){
        $(“#确定”).html(“”).append(
        $(“
          ”,{'class':'ul'}) ); }); 变量li=$(“
        • ”{ “类”:“myClass”, 单击:函数(){ 警惕(“你好”); } }), $(“#snd”)。单击(函数(){ $(“.ul”).html(“”).append(li); });

        我使用
        append
        是因为它比
        innerHTML

        更快,您应该使用
        #ok
        div绑定

        $("#ok").on('click', 'li.myclass', function(){ alert('ok'); });
        

        您的
        ul
        也是动态创建的,因此无法工作<加载时,应将
        上的
        绑定到页面上已经存在的元素。

        您应使用
        #ok
        div将
        上的
        绑定。如下所示:

        $("#ok").on('click', 'li.myclass', function(){ alert('ok'); });
        

        您的
        ul
        也是动态创建的,因此无法工作<
        上的代码>应绑定到加载时已在页面上的元素。

        由于您正在动态创建元素,您需要在创建新元素后立即将单击事件绑定到新元素,否则它将无法工作。

        因为您正在动态创建元素,您需要在创建新元素后立即将单击事件绑定到新元素,否则它将无法工作。

        ul
        本身是动态创建的,这意味着当您尝试对其调用
        时,它甚至不存在。
        ul
        本身是动态创建的,这意味着当你试图调用它时,它甚至不存在。