遇到问题:
当我获取 $(".
userNames")
页面元素后去制作显示隐藏的时候,发现隐藏不了元素,怎么都获取不到。
我这里#top内的所有元素都是动态渲染的;
问题起因:
因为页面已经将JS加载完毕,此时新增请求动态添加节点,自然获取不到。
解决方案:
在网上查阅资料后发现动态添加的标签要事件委托才能获取到节点,也就是说要用:
$(selector).on(events,[selector],[data],fn)
注意:
1..
userNames 为动态添加节点的父级节点,请使用非动态添加的父级节点,不然同样获取不到。
在<div id = "top"></div>
中动态添加点击节点:
$('#top').on('mouseenter', '.hii',function() {
$(".userNames").show()
})
$('#top').on('mouseleave ', '.userNames',function () {
$('.userNames').hide()
})
2. 请委托给直接上级非动态添加节点,不要扩大范围
请不要写为:
$(div).on('click', '.c', function () {
alert(123);
});
或者
$('.c').on('click', function () {
alert(123);
});