jQuery-jquery 使用html()设置内容后,如何使设置内容后新元素绑定的事件和原事件相同?
html:
<div id="1">
<div>
<ul>
<li><button id="button">a</button></li>
<li><span>1</span></li>
</ul>
</div>
</div>
<div id="2">
<ul>
<li></li>
</ul>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用事件委托吧,足够解决你的问题。
不过使用中碰到了一些问题,还没有解决,不影响使用。
使用jquery的事件委托
delegate
$("#1 button,#2 button").live("click",function(){
var s = $(#1).find("span");
$(s).text($(s).text()+1);
$("#2 li").html($("#1 li").eq(0).html());
});
事件绑定的时候使用 live
没有测过,不过应该可以了~
$(document).on('click','button',function(){
var s = Number($(this).parents('ul').find('span').text());
$(this).parents('ul').find('span').text(s+1);
$('#2 li').html($('#1 li:eq(0)').html());
})
<button id="button">a</button>中的id改成class
$(".button").live("click",function(){
var s = Number($(this).parents().find("ul:first span").text());
$(this).parent().parents().find("ul:first span").text(s+1);
$("#2 li").html($("#1 li").html());
});