利用事件委托解决js元素添加后未响应绑定事件问题
2017-09-27 19:23
711 查看
1.情景还原
html
<ul id="Container">
<li class='divclick'><span><em>1</em></span></li>
<li class='divclick'><span><em>2</em></span></li>
<li class='divclick'><span><em>3</em></span></li>
</ul>
<button id="add">添加</button>
js
$(".divclick").click(function(){
console.log(2);
})
$("#add").click(function(){
htmlstr="<li class='divclick'><span><em>4</em></span></li>"
$('#Container').append(htmlstr);
})
*在button添加第四个li元素之后,之前绑定的事件没有执行。
*利用事件委托,将事件绑定在父元素上
$("#Container").click(function(ev){
var ev = ev || window.event;
var target = ev.target || ev.srcElement;
console.log(2);
if (target.nodeName.toLowerCase() == 'em') {
var index=$(target).parents('li').index();
console.log(index);
}
})
$("#add").click(function(){
htmlstr="<li class='divclick'><span><em>4</em></span></li>"
$('#Container').append(htmlstr);
})
html
<ul id="Container">
<li class='divclick'><span><em>1</em></span></li>
<li class='divclick'><span><em>2</em></span></li>
<li class='divclick'><span><em>3</em></span></li>
</ul>
<button id="add">添加</button>
js
$(".divclick").click(function(){
console.log(2);
})
$("#add").click(function(){
htmlstr="<li class='divclick'><span><em>4</em></span></li>"
$('#Container').append(htmlstr);
})
*在button添加第四个li元素之后,之前绑定的事件没有执行。
*利用事件委托,将事件绑定在父元素上
$("#Container").click(function(ev){
var ev = ev || window.event;
var target = ev.target || ev.srcElement;
console.log(2);
if (target.nodeName.toLowerCase() == 'em') {
var index=$(target).parents('li').index();
console.log(index);
}
})
$("#add").click(function(){
htmlstr="<li class='divclick'><span><em>4</em></span></li>"
$('#Container').append(htmlstr);
})
相关文章推荐
- js中的事件委托机制(解决动态生成的dom元素无法绑定事件的问题)
- 事件委托:给多个元素和动态添加的元素绑定js事件,
- JS中批量给元素绑定事件过程中的相关问题使用闭包解决
- JS动态添加元素及绑定事件造成程序重复执行解决
- 使用Jquery的鲜活绑定(lively-ness),解决“新添加的元素,事件不可用”的问题
- JS中批量给元素绑定事件过程中的相关问题使用闭包解决
- 如果dom节点是动态添加进页面的,在页面节点绑定事件如何解决的问题。
- jquery动态添加元素事件失效问题解决方法
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- 分析并解决移动端js事件响应慢的问题
- jquery append 动态添加的元素事件on 不起作用问题的解决
- angular中动态添加的元素绑定事件问题
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- jquery动态添加元素事件失效问题解决方法 (自测过)
- 关于js动态生成元素,注册(绑定)的事件失效的解决(on)
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- Android利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- jquery动态添加元素事件失效问题解决方法
- Android自定义控件系列 六:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件
- Android自定义控件系列 十:利用添加自定义布局来搞定触摸事件的分发,解决组合界面中特定控件响应特定方向的事件