lfkabb
lfkabb
采纳率18.8%
2019-02-12 09:46

javascript 字符串拼接渲染的html元素,不能添加事件,为什么?哪位大神帮忙解答,感激不尽!

js字符串拼接:

'<p class="add"> <i class="icon iconfont icon2">&#xe60a;</i> &nbsp;<span class="nums"> 1 </span> &nbsp; <i class="icon iconfont icon1">&#xe63c;</i> </p>'

jquery 事件代码:

$(".add .icon1").bind("click",function(){ 
        alert("1");
        })

但是在浏览器中执行无效。

直接写在html中是有效的,但是这个需要获取数据再渲染。求哪位大神帮忙指点!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • jslang 天际的海浪 2年前

    你用的是直接绑定事件的方式。这种方式必须要先把html元素添加到页面上之后,再绑定事件才有效。
    如果一定要先绑定事件,再把html元素添加到页面上,就要用委托式的绑定事件方式。

    $("body").on("click",".add .icon1",function(){ 
            alert("1");
    })
    
    点赞 评论 复制链接分享
  • weidhuang huangyoucp 2年前

    对于动态新加的dom元素, 需要dom元素添加完之后再绑定事件。

    点赞 评论 复制链接分享
  • Lei_Da_Gou Lei_Da_Gou 2年前

    html拼接之后,将绑定事件的代码再声明一遍。
    原因是:bind函数指定绑定的时候你的html没有添加。因此对后添加的html标签需要再次绑定事件。

    点赞 评论 复制链接分享

相关推荐