JavaScript Event学习第十章 一些可替换的事件对


Posted in Javascript onFebruary 10, 2010

测试的局限性
这一章我们打算寻找哪些事件可以用来仿真鼠标事件。注意这一系列测试不包括屏幕阅读器。因为我不能满足所有的条件,因此测试也有局限性。这个测试目标仅仅只是那些在图形界面下的浏览器中不使用鼠标的用户。
我假设这些测试一样可以用来在一些移动设备上。因为条件不足,所以也不能测试。很多时候在移动设备上表现总是不尽如人意。
总结
不幸的是,我们不能制定一个严格的鼠标事件和非鼠标的一对一的方案,因为非鼠标事件和鼠标事件有很多不同。所以下面的建议在大多数场合适用,但不是所有。
下面就是我的测试结果:
1、mouseover:focus
2、mouseout:blur
3、click:不需要匹配
4、dblclick:不知道
5、mousedown:keydown(最不坏的选择)
6、mouseup:keyup(最不坏的选择)
7、mousemove:没有鼠标不可能

如果页面一定需要完美的支持非鼠标用户,那么我们可选择的能应用事件处理程序的元素就非常少。实际上就回到了Netscape 3时代,那时候事件处理程序只在链接和表单里才有用。
更多的研究还是有必要的。
准备
在大多数的浏览器中用户可以通过Tab键来飘过整个页面。当他们这样做的时候,焦点就会跳到下一个链接或者表单上。这在IE和Mozilla都可以运作。在Safari里面你需要按F1然后才能激活键盘快捷键。
Opera用户是另外一个系统的。链接上的跳转需要按Ctrl+方向键。虽然是不同的组合,但是我还是会称其为“Tabbing”。
例子:传统的mouseover
如何做到呢?首先也是最重要的为mouseover和mouseout的添加两个事件:

imgs[i].onmouseover = imgs[i].onfocus = mouseGoesOver; 
imgs[i].onmouseout = imgs[i].onblur = mouseGoesOut;

现在当用户鼠标经过或者tab经过时,函数都会被执行。
然而,添加一些事件还是不够的。我原始的工作室直接在图像上设置onmouseover和mouseout。不幸的是tab一个图像基本上不可能:tab只对链接和表单有用。所以我需要对把事件添加的图像的父节点上:链接。
这个简单的例子不会因为我们的重新注册改变,但更复杂的脚本可能会无法界定访问活动,例如,一个div。
为了保证完美的可用性,我们可以只定义链接和表单的事件,就像我们再1998年时候那样干的。虽然网上的大部分事件还是定义在链接上,不过一个复杂的比如文本编辑的脚本对于非鼠标用户就不可用,因为我们要在上面click。

翻译地址:http://www.quirksmode.org/js/events_pairs.html

作者:北玉(tw:@rehawk)
文章出处:beiyu.cnblogs.com

Javascript 相关文章推荐
js电信网通双线自动选择技巧
Nov 18 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
Jan 15 Javascript
jQuery 遍历json数组的实现代码
Sep 22 Javascript
jQuery读取和设定KindEditor值的方法
Nov 22 Javascript
jquery选择器使用详解
Apr 08 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 Javascript
js移动端图片压缩上传功能
Aug 18 Javascript
命令行批量截图Node脚本示例代码
Jan 25 Javascript
微信小程序wepy框架学习和使用心得详解
May 24 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
jQuery插件 tabBox实现代码
Feb 09 #Javascript
基于Jquery的简单&简陋Tabs插件代码
Feb 09 #Javascript
JQUERY操作JSON实例代码
Feb 09 #Javascript
JQuery 获得绝对,相对位置的坐标方法
Feb 09 #Javascript
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 #Javascript
Javascript 获取链接(url)参数的方法[正则与截取字符串]
Feb 09 #Javascript
一个XML格式数据转换为图表的例子
Feb 09 #Javascript
You might like
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
基于jQuery的获取标签名的代码
2012/07/16 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
jquery表单验证需要做些什么
2015/11/17 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
Python是编译运行的验证方法
2015/01/30 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
python程序需要编译吗
2020/06/19 Python
python正则表达式 匹配反斜杠的操作方法
2020/08/07 Python
python如何将图片转换素描画
2020/09/08 Python
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
2014年中班元旦活动方案
2014/02/14 职场文书
阅兵口号
2014/06/19 职场文书
2014年信贷员工作总结
2014/11/18 职场文书
python 利用PyAutoGUI快速构建自动化操作脚本
2021/05/31 Python
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL
Java版 单机五子棋
2022/05/04 Java/Android
基于Python编写一个监控CPU的应用系统
2022/06/25 Python