事件委托!!为什么给父级添加事件,子级根据target属性会触发

qq_41016180 2017-12-06 12:04:20
根据冒泡的原理,事件不是应该由子级传给父级吗,怎么会父级有事件,还能传给子级,是根据事件捕获???
...全文
403 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_41016180 2017-12-07
  • 打赏
  • 举报
回复
十分感谢
天际的海浪 2017-12-06
  • 打赏
  • 举报
回复
引用 2 楼 qq_41016180 的回复:
不好意思,再打扰您一下, 您所说的符合条件的元素,也就是我绑定事件的这个父元素,怎么用call把这个元素传递给“事件处理函数”的this,父元素.call(this), 是这样吗? 但这个事件是绑定在父元素身上,这里的this不也是指向的父元素吗?
我所说的符合条件的元素,是指需要委托事件的元素,不是被委托的父元素 如,$("body").on("click", "a", function(event){....}); 符合条件的元素就是 a元素 调用“事件处理函数”并用call()把这个元素传递给“事件处理函数”的this。方式是: 事件处理函数.call(符合条件的元素)
天际的海浪 2017-12-06
  • 打赏
  • 举报
回复
事件委托只是在父元素上有事件,子级元素上根本没有事件,也就不存在传给子级一说。 你设置给子级元素的“事件处理函数”,实际上是在父元素上的事件中调用执行的。 在父元素上的事件中,会从event.target指向的元素开始逐层向上查找符合条件的元素,一直查找到触发事件的这个父元素为止。 当找到符合条件的元素就调用你设置的“事件处理函数”,并用call()把这个元素传递给“事件处理函数”的this。
qq_41016180 2017-12-06
  • 打赏
  • 举报
回复
不好意思,再打扰您一下, 您所说的符合条件的元素,也就是我绑定事件的这个父元素,怎么用call把这个元素传递给“事件处理函数”的this,父元素.call(this), 是这样吗? 但这个事件是绑定在父元素身上,这里的this不也是指向的父元素吗?

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧