js 事件委托 bug 修复
2024-09-04 16:11:59
下面是html 内容:
<ul id="oul">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul> <button id="btn">添加元素</button>
我需要给li 绑定事件,打印点击的内容
let oUl = document.getElementById('oul')
let lis = oUl.getElementsByTagName('li')
let btn = document.getElementById('btn') btn.onclick = function(){
let oLi = document.createElement('li');
oLi.innerHTML = lis.length+1
oUl.appendChild(oLi)
} oUl.onclick = function(event) {
var e = event || window.event;
console.log(e.target.innerHTML)
}
如果点击到正确的元素是不会出错的,但是一旦拖拽或者点到空白区域,就会打印全部元素
为了避免这个bug,只需要进行一个简单的判断target
oUl.onclick = function(event) {
var e = event || window.event;
// 判断点击的元素是不是代理元素
if(e.target == this){
return
}
console.log(e.target.innerHTML)
}
接下来再次测试:
最新文章
- Html5 设置菱形链接菜单
- location of the android sdk has not been setup in the preferences
- Python学习笔记(4):自定义时间类
- php基础21:上传文件
- linux上安装hadoop
- Chapter 4 持久存储数据对象
- SQL Server事务日志介绍
- 时间管理-SMART原则
- yarn队列提交spark任务权限控制
- LightOJ_1038 Race to 1 Again
- Contest 20140923 潛行世界 拓撲排序,期望
- 仿QQ好友列表界面的实现
- JavaScript总结之单击弹出div
- PHP面向对象基础实例
- java里,当long与上了int
- 解决SVG跨浏览器兼容性问题
- 李明杰的视频和李明杰的博客是学习OC的基础
- android学习——环境的搭建
- MicroPython开发之物联网快速开发板
- Winform开发框架之字段权限控制