js学习小结(十四)2014.5.23(keyboard事件,mouseEvent事件event的相关属性,ie事件注册的N中方式)
来源:互联网 发布:手机版淘宝好评能改吗 编辑:程序博客网 时间:2024/05/16 16:12
1.keyboard事件
主要有三个事件:keydown,keyup,keypress。
如果三个事件都注册了,那么一般的触发顺序是keydown--> keypress---> keyup。
keypress:只有当在文本框里输入字符(包括数字、英文字母,回车符,各种符号)时会触发,如果采用中文输入法输入中文时,不会触发keypress事件。可以通过charCode获取按下键的ASCII值。
keydown和keyup:这是一对事件,无论按下什么键(无论是字符还是非字符)都会触发该这对事件。通过keyCode,会返回按下键的对应的大写字母的ASCII值。
注意:keydown和keypress都是在文本框内容变化之前触发的,而keyup是在文本框内容变化之后触发的。
<body><textarea id='tt' cols='20' rows='20'></textarea><input type='text' id='text'/><script type="text/javascript" src='../js/JSEvent.js'></script><script type="text/javascript">var tt=document.getElementById('tt');EventUtil.addEventHandler(tt,'keyup',function(e){e=EventUtil.getEvent(e);//console.log(EventUtil.getCharCode(e));console.log("keyup is triggered:"+e.keyCode+" " +String.fromCharCode(e.keyCode));});EventUtil.addEventHandler(tt,'keydown',function(e){e=EventUtil.getEvent(e);//console.log(EventUtil.getCharCode(e));console.log("keydown is triggered:"+e.keyCode+" " +String.fromCharCode(e.keyCode));});EventUtil.addEventHandler(tt,'keypress',function(e){e=EventUtil.getEvent(e);//console.log(EventUtil.getCharCode(e));console.log("keypress is triggered:"+EventUtil.getCharCode(e)+" " +String.fromCharCode(EventUtil.getCharCode(e)));}); </script></body>
2.mouseEvent事件
(1)对于mouseover和mouseout事件,标准DOM中可以通过relatedTarge属性获取相关元素,IE中,可以通过fromElement toElement获取相关元素。
(2)对于mouse的click事件可以通过button属性,获得使用鼠标点击时,是点击了鼠标左键还是右键还是中间的键。在标准DOM中,通过event的button属性,获取点击键的信息,event.button=0,表示按了鼠标左键,event.button=1,表示按下了鼠标右键,event.button=2,表示按下了中间键。在ie中,这个值返回得更加复杂,但是使用标准MouseEvent完全够了。所以使用了一下方法封装:
getButton:function(e){if(document.implementation.hasFeature('MouseEvents','2.0')){return event.button;}else{switch(event.button){case 0:case 1:case 3:case 5:case 7: return 0;case 2:case 6:return 2;case 4: return 1;}}}
(3)对于鼠标的滚轮事件,特别的是opera低版本中的表示的scroll
0 0
- js学习小结(十四)2014.5.23(keyboard事件,mouseEvent事件event的相关属性,ie事件注册的N中方式)
- JS-事件类型(鼠标事件中event对象的独有属性)
- 第五十四节 java学习——鼠标事件(MouseEvent)
- 06 JS的事件(Event)
- Javascript中Event事件的属性大全
- JS的事件(1)--焦点事件/event事件/事件流
- js事件的注册
- js中事件对象event的兼容性问题
- MouseEvent事件
- html的学习小结(3):HTML 4.0 事件属性
- IE和firefox浏览器的event事件兼容性(转帖)
- 事件(event)的逻辑
- flex中mouseevent事件获得button的label值
- Flex中双击事件MouseEvent.DOUBLE_CLICK不起作用的解决办法
- JavaScript Event学习第四章:传统的事件注册模型
- event事件中ie和标准dom的区别
- Javascript Event事件中IE与标准DOM的比较
- 关于oracle事件(等待事件)的小结[收集中]
- Sybase数据库安全性控制策略
- ARM寄存器别名及作用
- 多线程下 ruby rb_gc() crash的问题.
- 一个简单线程池的实现
- Thread类常用方法
- js学习小结(十四)2014.5.23(keyboard事件,mouseEvent事件event的相关属性,ie事件注册的N中方式)
- (总结)Linux下的暴力密码在线破解工具Hydra详解
- Hive中的4种表
- 嵌入式逻辑分析仪SignalTap II 设计范例
- mybatis 类型类型转换器
- 第四次上机赛标程
- UDP
- c 实现的 循环队列
- 求树的“直径”以及所想到的