js字符串拼接:
'<p class="add"> <i class="icon iconfont icon2"></i> <span class="nums"> 1 </span> <i class="icon iconfont icon1"></i> </p>'
jquery 事件代码:
$(".add .icon1").bind("click",function(){
alert("1");
})
但是在浏览器中执行无效。
直接写在html中是有效的,但是这个需要获取数据再渲染。求哪位大神帮忙指点!
你用的是直接绑定事件的方式。这种方式必须要先把html元素添加到页面上之后,再绑定事件才有效。
如果一定要先绑定事件,再把html元素添加到页面上,就要用委托式的绑定事件方式。
$("body").on("click",".add .icon1",function(){
alert("1");
})
html拼接之后,将绑定事件的代码再声明一遍。
原因是:bind函数指定绑定的时候你的html没有添加。因此对后添加的html标签需要再次绑定事件。
对于动态新加的dom元素, 需要dom元素添加完之后再绑定事件。