Satan` 2021-01-12 00:11 采纳率: 14.3%
浏览 105
已采纳

jQuery怎么获取动态生成的元素,on方法的话,父元素也是动态生成的,怎么写。

    //对json数据进行遍历
                        $.each(data,function (index,item) {
                            html = "";//每次循环数据都设置为空
                            html += "<h1 align='center'>我的订单</h1>";
                            html += "<table id='dataTb' border='1' align='center' width='500px'>";
                            html += "<tr align='center'><td>订单号</td><td>我的订单</td><td>应支付</td><td></td></tr>";
                            html += "<tr align='center'>";
                            html += "<td>"+item.num+"</td>";
                            html += "<td>"+item.name+"</td>";
                            html += "<td>"+item.price+"</td>";
                            html += "<td><a href='' class='pay'>立即支付</a></td>"
                            html += "</tr>";
                            html += "</table>";
                            
                            document.write(html);        //在 HTML 文档完全加载后使用 document.write() 将删除所有已有的 HTML
                            
                        });
                        
                    }

                 });
            
        });
        //支付购物车订单        //因为pay-btn按钮非本页原按钮,是刷新后的新按钮,所以点击事件要这样写。
            $('#pay-btn').on("click",'.pay',function(){
                alert(1);
            });
            

 

 

没有反应。'#pay-btn'   这个父元素也是动态生成的

  • 写回答

11条回答 默认 最新

  • 天际的海浪 2021-01-12 18:11
    关注

    你用document.write(html);就表示你的元素只是在页面加载时添加一次。
    那click事件就不需要用委托式的方式绑定了。
    可以在元素添加到页面之后直接对.pay元素本身绑定click事件。
     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制