zoukankan      html  css  js  c++  java
  • 浏览器的聚焦

    这又是一个老话题了, 不过最近在详写jQuery事件模拟的时候顺便又回顾了一次,做个记录巩固下吧

    当然这里所说的问题都是在旧版本的浏览器中出现的兼容问题,首先从事件流谈起

    18221238-e1d2095f2ab94e2dae22f82ef454d094

    通常支持事件冒泡(Event Bubbling)的事件类型为鼠标事件和键盘事件,例如:mouseover, mouseout, click, keydown, keypress

    接口事件则通常不支持事件冒泡(Event Bubbling),例如:load, change, submit, focus, blur

    focus/blur 在IE下是不持冒泡的,但是focusin/focusouts是支持冒泡了,可是火狐又不支持这2个事件

     

    那么就好办了,focus/blur事件如果需要委托就换成focusin/focusouts代替,但是如果换成不支持focusin/focusouts的浏览器呢,比如火狐

    事件流不是还有一个捕获吗?除了IE,现在流行的标准浏览器均支持

    所以jQuery给出的最终解决方案是:

    如果是IE下面,因为支持 focusin 和 focusout 事件,如果用了focus/blur实现冒泡的话就可以强制换成focusin 和 focusout

    其余浏览器在不支持focusin/focusouts的情况下,转化成事件捕获

  • 相关阅读:
    Windows OS上安装运行Apache Kafka教程
    CSS3 transition属性
    CSS3新增UI样式
    css3响应式布局
    CSS3弹性盒模型
    CSS3
    移动端开发的那点事儿
    git开源项目协作
    移动端(IOS)iframe监听不到 onscroll 事件
    Javascript高级程序设计读书笔记(第10章 DOM)
  • 原文地址:https://www.cnblogs.com/aaronjs/p/4151738.html
Copyright © 2011-2022 走看看