jQuery中事件绑定,大多使用on就足够了。
但是对于新添加的元素 on 的绑定事件 会不起作用。
因为 append 中的 节点是在整个文档加载之后才添加的,页面并不会为未来的元素初始化添加点击事件,因此 这种方式添加的 节点的点击事件是无效的。
解决方法:
事件委托。事件委托就是利用事件冒泡的原理,把事件添加到父元素或祖先元素上,触发执行效果。
原代码:
1 $('#ul li').on('click',
function() {
2 alert($(
this).html())
3 })
修改为:
$(document).on('click', '#ul li',
function() {
alert($(this).html())
})
转载于:https://www.cnblogs.com/xguoz/p/10131297.html