zoukankan      html  css  js  c++  java
  • 浏览器事件以及事件代理

    以前对事件的了解停留在事件冒泡的概念。 一提到就想到了事件不断的向上冒泡的过程

    其实常见的事件模型分为事件冒泡,事件捕获

    • 事件冒泡

        在我们使用的所有浏览器中,都支持事件冒泡,即事件由子元素向祖先元素传播。

    • 事件捕获

        在firefox,chrome,safari这类标准浏览器中还支付事件捕获(IE Opera不支持)

     捕获阶段是一个和冒泡阶段完全相反的过程,即事件由祖先元素向子元素传播,和一个石子儿从水面向水底下沉一样,要说明的是在 IE,opera浏览器中,是不存在这个阶段的。   

    具体实现异同点:

    attachEvent (IE Opera) 本身这个就只有2个参数

    W3C addEventListener(type,fn,boolean) 注意第三个参数

    true : 捕获阶段

    false : 冒泡阶段

    事件代理

    事件代理就是借助事件冒泡来实现的。逻辑很简单

    首先我们需要了解目标元素和祖先元素。事件冒泡就是从目标元素到祖先元素的一个过程。这样就简单了就是当鼠标点击目标元素后。其必定会经过祖先元素。这样的好处就是我们就没有必要每一个子元素都注册一个事件了。只需要在祖先元素上注册一下。祖先元素在这里就有一个代理绑定的过程这就是事件代理了。

    需要说明的是我上面也提过了IE Opera 这一类不支持事件冒泡当然就不行了。还有一类事件也不支持事件冒泡比如(blur、focus、load和unload)

    如有啥疑问欢迎一起讨论

  • 相关阅读:
    Android开源项目发现---TextView,Button篇(持续更新)
    Android 性能分析案例
    Android如何正确的保存文件
    注意android裁图的Intent action
    UI设计师的 Android 备忘录
    添加Fragment注意事项
    在 ActionBar 添加刷新按钮
    显示 SQLite 日志
    MySQL数据库的自动备份与数据库被破坏后的恢复(2)
    MySQL数据库的自动备份与数据库被破坏后的恢复1
  • 原文地址:https://www.cnblogs.com/blueSkys/p/3816850.html
Copyright © 2011-2022 走看看