- 浏览: 1465365 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
luhouxiang:
写的很不错,学习了
Extjs 模块化动态加载js实践 -
kingkongtown:
如果想改成淘宝后台那样,可以在编辑器批量上传图片呢?
kissy editor 阶段体会 -
317966578:
兄弟我最近也在整jquery和caja 开放一些接口。在git ...
caja 原理 : 前端 -
liuweihug:
Javascript引擎单线程机制及setTimeout执行原 ...
setTimeout ,xhr,event 线程问题 -
辽主临轩:
怎么能让浏览器不进入 文档模式的quirks模式,进入标准的
浏览器模式与文本模式
概念:
除了常见的 focus,blur 事件,DOM Level 3 事件模块 还定义了 focusin ,focusout 以及 DOMFocusIn ,DOMFocusOut 四个事件。
规范:
blur :
在这个事件触发前,元素已经失去焦点,不冒泡,同步触发。target 指向当前失去焦点的元素。
DOMFocusIn :
在这个事件触发前,元素已经得到焦点,可冒泡,同步触发。target 指向当前得到焦点的元素。
DOMFocusOut :
在这个事件触发前,元素已经没有焦点,可冒泡,同步触发。target 指向当前失去焦点的元素。
focus:
在这个事件触发前,元素已经得到焦点,不冒泡,同步触发。target 指向当前得到焦点的元素。
focusin :
在当前元素获得焦点前以及相关元素失去焦点前触发,可冒泡,同步触发。target 指向当前将要获得焦点的元素,relatedTarget 指向失去焦点的元素
focusout :
在当前失去焦点前触发,可冒泡,同步触发。target 指向当前将要失去焦点的元素,relatedTarget 指向将要失去焦点的元素。
触发顺序:
假定有两个元素 1,2,先使得1 获得焦点再使得 2 获得焦点,那么事件的触发顺序以及触发源为
focusin -> 元素 1
元素 1 获得焦点
focus -> 元素 1
DOMFocusIn -> 元素 1
focusout -> 元素 1
focusin -> 元素 2
元素 1 失去焦点
blur -> 元素 1
DOMFocusOut ->元素 1
元素 2 获得焦点
focus -> 元素 2
DOMFocusIn -> 元素 2
兼容性测试:
测试代码:
<div tabindex="-1" id='a1'> area 1 </div> <div tabindex="-1" id='a2'> area 2 </div>
通过调用 focus()方法来进行焦点转移,(也可通过鼠标直接点击,但是就不能测试是否同步了)关于 div 的焦点可见这里
。
firefox 3.6.12
没有 focusin,focusout,DOMFocusIn,DOMFocusOut事件,focus,blur为同步触发
触发顺序为:
a1 focus target:a1 a1 focus relatedTarget: keydown : 49 a1 blur target:a1 a1 blur relatedTarget: a2 focus target:a2 a2 focus relatedTarget: keydown : 50
chrome 9.0
全部事件都实现了,且都为同步触发,但是触发顺序和规范不一致,并且没有定义 relatedTarget 事件属性:
a1 focus target:a1 a1 focus relatedTarget: a1 focusin target:a1 a1 focusin relatedTarget: a1 DOMFocusIn target:a1 a1 DOMFocusIn relatedTarget: keydown : 49 a1 blur target:a1 a1 blur relatedTarget: a1 focusout target:a1 a1 focusout relatedTarget: a1 DOMFocusOut target:a1 a1 DOMFocusOut relatedTarget: a2 focus target:a2 a2 focus relatedTarget: a2 focusin target:a2 a2 focusin relatedTarget: a2 DOMFocusIn target:a2 a2 DOMFocusIn relatedTarget: keydown : 50
只是将 focusxx DOMFocusXx 作为对应 focus,blur 的后面事件触发,没有使用意义。
ie
ie 支持 focusin ,focusout,并且同步触发顺序和规范一致,但是没有 target 以及 relatedTarget 事件属性。
对于 focus 以及 blur 为异步触发,同样没有 target 以及 relatedTarget 事件属性。
不支持 DOMFocusIn,DOMFocusOut。
触发顺序:
a1 focusin target:null a1 focusin relatedTarget: keydown : 49 a1 focus target:null a1 focus relatedTarget: a1 focusout target:null a1 focusout relatedTarget: a2 focusin target:null a2 focusin relatedTarget: keydown : 50 a1 blur target:null a1 blur relatedTarget: a2 focus target:null a2 focus relatedTarget:
updated : 2010-12-10
一点奇怪的问题:在 ie9 pp7 下,当点击按钮,聚焦页面iframe的body时,iframe body 的 focusin 事件也是异步的!
例如会出现序列
before click after click body focusin body focus
而不是
before click body focusin after click body focus
模拟 focusin/out
这次反过来了,在 focus 或 blur 前有事件触发并且支持子元素冒泡确实非常有用,可是目前 firefox 与 chrome 都不支持或者 触发 顺序不对,另一方面由于标准浏览器支持捕获capture,而捕获阶段恰恰在冒泡阶段前,虽然 focus/blur 不会冒泡,但是捕获阶段还是存在的,那么
handler1
element.addEventListener("focus",function(){ // handler 1 },true);
也就比 handler2
element.addEventListener("focus",function(){ // handler 2 },false);
先触发了,也就相当于 ie 下的
element.attachEvent("onfocusin",function(){ //handler1 });
并且由于捕获时子元素获得焦点也会通知父元素,那么也就达到了 ie 以及规范规定的冒泡效果,这也正是 kissy 事件模块
用来全平台兼容 focusin/out 的方法了。
应用:
通过监控 form 即可监控各个输入域,当失去焦点以及得到焦点时进行处理:
<form id='f'> <input id='i'/> <input id='i2'/> </form> <script> KISSY.use("node",function(S,Node){ Node.one("#f").on("focusin",function(ev){ console.log("focusin : "+ev.target.attr("id")); }); Node.one("#f").on("focusout",function(ev){ console.log("focusout : "+ev.target.attr("id")); }); }); </script>
发表评论
-
continuation, cps
2013-09-12 16:49 2809起 随着 nodejs 的兴起,异步编程成为一种潮流 ... -
一种基于匹配回朔的 css3 选择器引擎实现
2013-05-07 20:40 3414一种基于匹配回朔的 css3 选择器引擎实现 介绍 C ... -
cubic-bezier 模拟实现
2013-01-05 16:34 14110cubic-bezier 曲线是 css3 动画的一个重要基石 ... -
构建前端 DSL
2012-10-11 22:10 5372目前在传统的软件开 ... -
Get cursor position and coordinates from textarea
2012-04-10 20:50 5066最近需要从 textarea 中获 ... -
兼容 ie 的 transform
2012-02-23 14:00 6443css 2d transform 是 css3 引入的一个新的 ... -
promise api 与应用场景
2012-02-07 17:34 7402promise 是 commonjs 社区中提出的异步规范,其 ... -
closure compiler 代码优化实例
2012-01-08 03:23 2842closure compiler 可以进行不少有意思的优化 ... -
write html parser
2011-12-01 02:48 2925首先需要声明 html 不能用正则表达式来直接匹配进行内容抽取 ... -
获取剪贴板数据
2011-11-07 23:31 6459兼容性: 获取剪贴板数据这块各个浏览器间存在很大的 ... -
url 映射问题
2011-11-07 21:52 3226背景 url mapping 我最早知道是作为 j ... -
tip:如何原生播放声音
2011-10-19 12:45 2985如果不想考虑浏览器间 ... -
转载:瀑布流布局浅析
2011-09-29 19:02 2853简介 如果你经 ... -
cross domain request
2011-09-29 18:39 2851场景 跨域请求是随着 ... -
基于多继承的树设计
2011-09-18 03:42 2271分类 树是一种常见 ... -
caja 原理 : 前端
2011-09-01 16:48 7077作为前端开放的基础安全保证,caja 是目前比较合 ... -
tokenization of html
2011-08-29 22:38 2794html 符号解析问题 场景: 在页面上输出包 ... -
ie 下 cloneNode 导致的属性克隆
2011-08-24 16:10 2483这个还是很值得记下,一直存在的很大隐患终于解决,由于在 ie& ... -
循环引用下的深度克隆
2011-08-04 20:39 2328深度复制和浅度复制 是当初初学 c 遇到的第一批问题,似乎使 ... -
模块的静态与动态循环依赖
2011-07-25 03:43 3286场景: 循环依赖 我是不支持的,但现实中似乎又确实需 ...
相关推荐
【标题解析】 标题"大图jQuery多屏首页焦点图代码,兼容主流浏览器"涉及到的是一个前端开发技术问题,特别是...同时,这也提供了一个学习和提升前端技能的机会,尤其是对于jQuery库的运用和多设备兼容性问题的解决。
**jQuery 100% 自适应左右切换焦点图详解** 在网页设计中,焦点图(也称为轮播图或幻灯片)是一种常见的元素,用于展示多张图片或信息,节省...完成以上步骤后,你将拥有一个功能完备、兼容性强的jQuery焦点图组件。
【标题】"唐宋中国网jQuery焦点图,兼容主流浏览器demo"所指的是一款基于jQuery的焦点图插件,主要用于网站中的图片轮播...对于前端开发者来说,这是一个了解和实践jQuery动画效果,以及处理浏览器兼容性问题的好实例。
6. **浏览器兼容性**:“兼容主流浏览器”意味着这个代码经过优化,可以在Internet Explorer、Firefox、Chrome、Safari和Opera等主要浏览器上正常工作。这通常涉及到对不同浏览器的特性的检测和适配,比如使用`$.fn....
在本压缩包文件中,提供的焦点图代码具有高度的扩展性和良好的兼容性,意味着它可以适应各种不同的项目需求,并能在各种浏览器环境下正常运行,包括但不限于Chrome、Firefox、Safari、Edge以及IE等主流浏览器。...
**jQuery 云端桌面大屏焦点图的实现及浏览器兼容性** 在现代网页设计中,大屏焦点图(也称为轮播图或滑动图片展示)是常见的一种元素,用于吸引用户的注意力并展示重要信息。本项目是基于jQuery库构建的云端桌面...
3. **兼容性**:考虑到 IE6 至 IE10 这些老版本的浏览器,开发者通常需要处理更多的兼容性问题。这个焦点图插件已经进行了优化,确保在各种浏览器环境下都能正常工作,这对于那些仍需支持旧浏览器的项目来说非常有...
在本案例中,我们关注的是一个专为IE6浏览器兼容设计的滑动焦点图插件,它不仅支持现代浏览器,还解决了老旧的IE6浏览器的兼容性问题。 首先,让我们深入理解这个插件的核心功能。**兼容ie6**是关键点,意味着...
本文将深入探讨jQuery焦点图的实现原理、兼容性问题以及如何实现自动轮换和左右翻页功能。 首先,jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画效果和Ajax交互。jQuery焦点图正是利用其...
在Qt编程中,键盘映射和焦点移动是两个重要的概念,尤其在创建用户界面...在ARM Linux系统上,这些功能的实现需要考虑交叉编译和环境兼容性问题。通过理解和掌握这些知识点,开发者可以创建出高效、用户友好的Qt应用。
标题中的“好孩子官网满屏jQuery焦点图,兼容IE 6789及...总之,这个项目是一个很好的实践案例,可以帮助前端开发者提高其在实际项目中的问题解决能力,特别是对于那些希望掌握jQuery和跨浏览器兼容性技巧的人来说。
在IT行业中,JavaScript是一种广泛应用的前端开发语言,用于创建交互式的网页内容。...通过阅读和理解代码,你可以学习到如何用JavaScript处理浏览器兼容性问题,以及如何创建动态的、交互式的网页元素。
- 考虑到兼容性问题,确保你的程序能够处理各种类型的扫码枪和不同的条形码格式。 4. **osfmount.exe与下载说明.htm**: - 这两个文件名看起来并不直接关联C#文本框和扫码枪的编程。`osfmount.exe`可能是一个磁盘...
此外,jQuery库本身具有很好的跨浏览器兼容性,可以帮助处理这些问题。 实现自适应宽度的jQuery焦点图,一般步骤如下: 1. **HTML结构**:创建包含所有图片的容器,每个图片包裹在一个可滑动的元素内。 2. **CSS...
6. **兼容性**:作为一个有效的解决方案,该工具应适用于不同的操作系统版本,如Windows 7、8、10等。 7. **权限管理**:由于涉及到进程和窗口的监控,该工具可能需要较高的系统权限才能正常工作。 8. **安全性和...
5. **浏览器兼容性**:为了确保代码在主流浏览器(如Chrome、Firefox、Safari、Edge和IE11)中正常工作,可能需要考虑一些兼容性问题。例如,使用`-webkit-`、`-moz-`、`-ms-`等前缀来支持不同的CSS属性,以及使用...
提示“程序如果跑不起来需要自调”,这意味着代码可能存在兼容性问题或特定环境下的bug。调试时,应确保使用合适的Android SDK版本,并对不同设备和屏幕尺寸进行测试。 9. **学习与参考**: 这个压缩包中的代码...
考虑到IE6、7、8、9的兼容性,我们需要引入jQuery的兼容性库,如jQuery migrate,以便解决某些新特性在旧版IE中的不支持问题。同时,我们还需要确保所有的CSS和JavaScript代码遵循传统的浏览器前缀规则,以确保在老...