WEB开发网
开发学院网页设计JavaScript JavaScript Event学习第七章:事件属性 阅读

JavaScript Event学习第七章:事件属性

 2010-03-30 00:00:00 来源:WEB开发网   
核心提示: 最后两行的代码专门针对Safari的,如果event发生在一个包含文本(text)的元素上,JavaScript Event学习第七章:事件属性(2),这个文本节点(text node)而不是元素本身就成为了event的目标,因此我们要检查如果目标的nodetype是3(文本节点),请注意这些属

最后两行的代码专门针对Safari的。如果event发生在一个包含文本(text)的元素上,这个文本节点(text node)而不是元素本身就成为了event的目标。因此我们要检查如果目标的nodetype是3(文本节点)。如果是我们就把它移动到父节点上,HTML元素。

即使event被捕获或者冒泡了(bubbles up),target/srcElement属性也依然是最早发生event的元素。

其他的target

还有很多targeting的属性。我在Event Order这篇文章里讨论了currentTarget,在Mouse event这篇文章里讨论了relatedTarget,fromElement和toElement。

3、哪些键在event发生时被按下了?

这个问题相对简单一些。首先从keyCode属性得到该键的代码(a=65)。当你得到了键值以后,你可以通过String.fromCharCode()方法知道实际的键值,如果必要的话。

1 function doSomething(e) {<br>    var code;<br>    if (!e) var e = window.event;<br>    if (e.keyCode) code = e.keyCode;<br>    else if (e.which) code = e.which;<br>    var character = String.fromCharCode(code);<br>    alert('Character was ' + character);<br>}<br>

这里有一些地方可能会造成键盘事件比较难用。比如,kepress事件触发的时间和使用者按下键的时间一样长。然而,大多数浏览器里面keydown的触发时间也和按下的时间一样长。我不确定这是不是一个好的想法,但是就是那样的。

4、哪个鼠标键在Event发生时被按下了?

这里有两个属性可以知道哪个鼠标键被按下了:which和button。请注意这些属性通常不一定在click上起作用。为了保险的探测哪个鼠标键被按下,你最好使用mousedown和mouseup事件。

编缉推荐阅读以下文章

  • JavaScript Event学习补遗:addEventSimple
  • JavaScript Event学习第十一章:按键的检测
  • JavaScript Event学习第十章:一些可替换的事件对
  • JavaScript Event学习第九章:鼠标事件
  • JavaScript Event学习第八章:事件的顺序
  • JavaScript Event学习第六章:事件的访问
  • JavaScript Event学习第五章:高级事件注册模型
  • JavaScript Event学习第四章:传统的事件注册模型
  • JavaScript Event学习第三章:早期的事件处理程序
  • JavaScript Event学习第二章:Event

上一页  1 2 3 4  下一页

Tags:JavaScript Event 学习

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接