当前位置:网站首页>完善的js事件委托
完善的js事件委托
2022-07-04 17:07:00 【欲饮琵琶码上催】
function eventDelegate(element, eventType, selector, fn) {
element.addEventListener(eventType, e => {
let el = e.target;
// 当点击的元素不为li本⾝的时候,⽐如说span,就找⽗级是否为li
while (!el.matches(selector)) {
// 不断向上找⽗级元素,判断是否有li标签
if (element === el) {
// 直到找到代理元素就不执⾏委托
el = null;
break;
}
el = el.parentNode;
}
el && fn.call(el, e, el);
})
return element;
}
eventDelegate(ul, 'click', 'li', function (e, el) {
console.log(`点击了${
this}标签`)
})
ul.addEventListener('click', function() {
let el = e.target
while (el && !el.matches(selector)) {
el = el.parentNode
if (element === el) {
el = null
}
}
if (el) {
console.log('执行回调函数')
}
}
参考文章
https://zhuanlan.zhihu.com/p/26986963
边栏推荐
- Journal des problèmes de brosse à boutons de force / day6 / 6.28
- 基于unity的愤怒的小鸟设计
- 用于图数据库的开源 PostgreSQL 扩展 AGE被宣布为 Apache 软件基金会顶级项目
- How to open an account is safe,
- .NET ORM框架HiSql实战-第二章-使用Hisql实现菜单管理(增删改查)
- The block:usdd has strong growth momentum
- 李迟2022年6月工作生活总结
- 删除二叉搜索树中的节点附图详解
- Is it safe to download the mobile version of Anxin securities and open an account online
- People in the workplace with a miserable expression
猜你喜欢
基于C语言的菜鸟驿站管理系统
中国农科院基因组所汪鸿儒课题组诚邀加入
力扣刷题日记/day6/6.28
2022年全国CMMI认证补贴政策|昌旭咨询
I wrote a learning and practice tutorial for beginners!
用于图数据库的开源 PostgreSQL 扩展 AGE被宣布为 Apache 软件基金会顶级项目
Is it science or metaphysics to rename a listed company?
Crawler (6) - Web page data parsing (2) | the use of beautifulsoup4 in Crawlers
Li Kou brush question diary /day7/2022.6.29
华为云ModelArts的使用教程(附详细图解)
随机推荐
基于unity的愤怒的小鸟设计
fopen、fread、fwrite、fseek 的文件处理示例
mysql5.7安装教程图文详解
基于NCF的多模块协同实例
PB的扩展DLL开发(超级篇)(七)
[cloud native] what is the "grid" of service grid?
Li Kou brush question diary /day5/2022.6.27
Redis主从复制
[cloud voice suggestion collection] cloud store renewal and upgrading: provide effective suggestions, win a large number of code beans, Huawei AI speaker 2!
Blue bridge: sympodial plant
一种将Tree-LSTM的强化学习用于连接顺序选择的方法
How to improve development quality
同事悄悄告诉我,飞书通知还能这样玩
Redis master-slave replication
Lua EmmyLua 注解详解
Grain Mall (I)
Halcon template matching
Li Kou brush question diary /day4/6.26
输入的查询SQL语句,是如何执行的?
1、 Introduction to C language