浅谈事件冒泡和事件捕获的应用场景——事件代理/事件委托
2017-04-16 22:45
489 查看
采用事件代理,为页面中的所有a标签绑定click事件。
问题:若a标签里面仍有span、img等其他元素,上述代码中,单击span、img等其他元素不能触发click事件。
原因:单击span、img等其他元素时,e.target指向的是触发click事件的元素(span、img等其他元素),而不是a标签。
解决方法:从触发click事件的元素开始,逐级向上查找,直到找到a标签为止。
document.addEventListener("click", function(e) { if (e.target.nodeName == "A") console.log("a"); }, false);
问题:若a标签里面仍有span、img等其他元素,上述代码中,单击span、img等其他元素不能触发click事件。
原因:单击span、img等其他元素时,e.target指向的是触发click事件的元素(span、img等其他元素),而不是a标签。
解决方法:从触发click事件的元素开始,逐级向上查找,直到找到a标签为止。
document.addEventListener("click", function(e) { var node = e.target; while (node.parentNode.nodeName != "BODY") { if (node.nodeName == "A") { console.log("a"); break; } node = node.parentNode; } }, false);
相关文章推荐
- 浅谈事件委托(事件代理)和事件冒泡
- 事件冒泡、事件捕获、默认事件与事件代理(委托)
- 事件冒泡与捕获&事件委托
- 理解JavaScript中的事件路由冒泡过程及委托代理机制
- 先看看解析,事件委托:也称事件代理 就是利用冒泡的原理 把加事件加到父级上,触发执行效果
- 事件冒泡、事件捕获和事件委托
- JS-事件冒泡、事件捕获 和 事件代理
- js事件捕获,事件冒泡,事件委托以及DOM事件流
- Atitit. Js 冒泡事件阻止 事件捕获 事件传递 事件代理
- 事件以及事件捕获、事件冒泡、事件委托
- Javascript中事件捕获、事件冒泡以及事件委托机制
- Javascript笔记—事件分析(冒泡,捕获,代理)
- 理解JavaScript中的事件路由冒泡过程及委托代理机制
- 关于JS事件冒泡与JS事件代理(事件委托)
- 事件的捕获-冒泡机制及事件委托
- 理解JavaScript中的事件路由冒泡过程及委托代理机制
- JS中的事件绑定,事件捕获,事件冒泡以及事件委托,兼容IE
- 浅谈事件冒泡与事件捕获
- 事件冒泡、事件捕获、事件委托
- 事件冒泡,捕获与事件委托。