Vivianluolita 2016-10-26 07:35 采纳率: 0%
浏览 2170
已采纳

onclick动态生成的元素中,为什么新生成的元素上的Onclick没有效果

AddChapter上本该有点击事件的。可是js动态生成的元素上却没有

 $(function(){ 
     $(".RightContentImg").parent().siblings("div").not(".RightContentImgAdd").css("display","block");
     $(".AddChapter").on("click",function(){
        var div = '<div class="FormItemListEdit" id="FormItemListEditCollapse">'+
   '<a href="javascript:void(0)"><p class="EditContent">'+
    '<a href="javascript:void(0)" class="EditContentImg"></a>准备工作</p></a>'+
    '<a href="javascript:void(0)" class="RightContentImg"></a>'+
    '<div class="RightContentImgAdd"><div class="Entry"><div class="EntryTrangle"></div>'+
  '<a class="AddChapter"href="javascript:void(0)"><p>添加章</p></a>'+
  '<a class="AddSection" href="javascript:void(0)"><p>添加节</p></a>'+
  '<a class="DeleteColumn"href="javascript:void(0)"><p>删除</p></a></div></div>'+
    '<a href="javascript:void(0)" class="RightContentNum">0字</a></div>';
        $("#FormItemListEditCollapse").parent().append(div);
    });
  • 写回答

5条回答 默认 最新

  • Go 旅城通票 2016-10-26 08:30
    关注
     <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>
    <a class="AddChapter" href="javascript:void(0)"><p>添加章</p></a>
    <div id="FormItemListEditCollapse"></div>
    <script>
        $(document.body).on('click', '.AddChapter', function () {
            var div = '<div class="FormItemListEdit" id="FormItemListEditCollapse">' +
     '<a href="javascript:void(0)"><p class="EditContent">' +
      '<a href="javascript:void(0)" class="EditContentImg"></a>准备工作</p></a>' +
      '<a href="javascript:void(0)" class="RightContentImg"></a>' +
      '<div class="RightContentImgAdd"><div class="Entry"><div class="EntryTrangle"></div>' +
    '<a class="AddChapter"href="javascript:void(0)"><p>添加章</p></a>' +
    '<a class="AddSection" href="javascript:void(0)"><p>添加节</p></a>' +
    '<a class="DeleteColumn"href="javascript:void(0)"><p>删除</p></a></div></div>' +
      '<a href="javascript:void(0)" class="RightContentNum">0字</a></div>';
            $("#FormItemListEditCollapse").parent().append(div);
        })
    </script>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 一步一成长 2016-10-26 07:46
    关注

    你可以试试 $(".addChapter").click(function(){
    //TODO
    });
    可能你引入的jquery版本的问题,有些版本存在这种情况1.9 2.0 2.1 貌似都存在

    评论
  • Go 旅城通票 2016-10-26 07:53
    关注

    执行这句$(".AddChapter").on只能获取dom中已经存在的元素,后续添加没搞。。应该给parent添加事件,然后指定选择器

     $(".AddChapter的容器选择器").on("click",'.AddChapter',function(){
    
    评论
  • tulong520 2016-10-26 09:29
    关注

    $(".AddChapter的容器选择器").off(".AddChapter的容器选择器").on("click",'.AddChapter',function(){

    评论
  • 碎狗娃 2016-10-26 09:51
    关注

    初始化页面的时候,js会给你的标签绑定监听事件,而新生成的标签没有绑定监听事件,因此点击之后无法触发js,这时候需要使用jquery事件delegate()方法来解决,具体写法:$( AddChapter容器的父元素 ).delegate( '.AddChapter', click,function(){
    //do something
    } ),注意它是绑定到AddChapter的父元素上的

    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 网络打印机Ip地址自动获取出现问题
  • ¥15 求局部放电案例库,用于预测局部放电类型
  • ¥100 QT Open62541
  • ¥15 stata合并季度数据和日度数据
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?
  • ¥15 用QT,进行QGIS二次开发,如何在添加栅格图层时,将黑白的矢量图渲染成彩色
  • ¥50 监控摄像头 乐橙和家亲版 保存sd卡的文件怎么打开?视频怎么播放?
  • ¥15 Python的Py-QT扩展库开发GUI
  • ¥60 提问一下周期性信信号的问题