当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript Event学习第十章 一些可替换的事件对

Javascript
二级连动的另一个不错的实现方法
键盘元素的控制小方块的移动效果
如何丰富alt属性的显示效果
鼠标移动到某个单元格上后,整个列都变色的实现方法
用JavaScript实现字符串切分功能
通过JAVAScript实现页面自适应
短信提示使用 特效
一个多次搜索+多次传值的解决方案
javascript读取RSS数据
WEB泡泡堂2.0(图形界面+电脑对玩)(javascript)
JS+FLASH幻灯片播放图片脚本,整理了代码,使得调用更加方便!
利用javascript中的call实现继承
javascript 中对象的继承〔转贴〕
float ad浮动广告代码
showModalDialog 和 showModelessDialog
Ajax::prototype 源码解读
深入认识JavaScript中的函数
Javascript技术技巧大全(五)
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
用正则xmlHttp实现的偷(转)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 266 ::
收藏到网摘: n/a

为了让我们的JavaScript驱动的页面对那些不能或者不想使用鼠标的用户也能很好的使用,我们对于像mouseover和click这样的事件做一些处理,同样的,对于非鼠标事件也同样的要我们的脚本执行。 测试的局限性
这一章我们打算寻找哪些事件可以用来仿真鼠标事件。注意这一系列测试不包括屏幕阅读器。因为我不能满足所有的条件,因此测试也有局限性。这个测试目标仅仅只是那些在图形界面下的浏览器中不使用鼠标的用户。
我假设这些测试一样可以用来在一些移动设备上。因为条件不足,所以也不能测试。很多时候在移动设备上表现总是不尽如人意。
总结
不幸的是,我们不能制定一个严格的鼠标事件和非鼠标的一对一的方案,因为非鼠标事件和鼠标事件有很多不同。所以下面的建议在大多数场合适用,但不是所有。
下面就是我的测试结果:
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