java委托机制教程,一看就会的事件委托的讲解

事件委托

事件委托是将子元素的事件委托给父元素。

实现的机制

事件委托是基于事件冒泡而实现的。

事件冒泡

子元素的事件被触发,它会传递给父元素,父元素的事件也会被触发,一直到根节点,这一个过程叫事件冒泡。

示例1

简单至极的事件委托

html结构

  • 1
  • 2
  • 3
  • 4

复制代码

js代码

let ulDom = document.querySelector('ul')

ulDom.onclick = function (e) {

if (e.srcElement.nodeName.toLowerCase() === 'li') {

console.log('点击li元素')

}

}

复制代码

示例2

可应用于项目中的delegate的实现(注意处理一下浏览器兼容性)

/**

* @function 事件委托的实现

* @param parentDom dom对象

* @param childDoms 数组(元素是dom对象)

* @param eventType 事件类型

* @param callback 回调函数

*/

const delegate = function (parentDom, childDoms, eventType, callback) {

const isChildOf = (childDom, parentDom) => {

var parentNode

if (childDom && parentDom) {

parentNode = childDom.parentNode

while (parentNode) {

if (parentDom === parentNode) {

return true

}

parentNode = parentNode.parentNode

}

}

return false

}

parentDom.addEventListener(eventType, function (e) {

for (let i = 0; i < childDoms.length; i++) {

let parent = childDoms[i]

if (isChildOf(e.srcElement, parent)) {

if (typeof callback === 'function') {

callback()

}

}

}

}, false)

}

复制代码

谢谢阅读!

可加微信交流!

e610123335f1afc518488101d462c9c2.png

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[一看就会的事件委托的讲解]http://www.zyiz.net/tech/detail-132705.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值