DOM基础教程之事件类型


Posted in Javascript onJanuary 20, 2015

对于用户事件类型而言,最常用的是鼠标、键盘、浏览器。

1.鼠标事件:

DOM基础教程之事件类型

鼠标的事件都频繁使用,下面例子就测试各种鼠标事件

<script language="javascript">

            function handle(oEvent) {

                var disp = document.getElementById("display");

                if (window.event) oEvent = window.event; //处理兼容性,获得对象

                disp.innerHTML += "鼠标事件名称:" + oEvent.type + "<br>";

            }

            window.onload = function() {

                var oP = document.getElementById("box");

                oP.onmousedown = handle;

                oP.onmouseover = handle;

                oP.onmouseup = handle;

                oP.onmouseout = handle;

                oP.onclick = handle;

                oP.ondblclick = handle;

            }

        </script>

        <div>

            <div id="box" style="width:100px;height:100px;background:#ddd;">

                box内容

            </div>

            <p id="display"></p>

        </div>

鼠标的键值button测试(附对照表)

DOM基础教程之事件类型

<script language="javascript">

            function TestClick(oEvent) {

                var oDiv = document.getElementById("display");

                if (window.event)

                    oEvent = window.event;

                oDiv.innerHTML += oEvent.button; //输出button的值

            }

            document.onmousedown = TestClick;

            window.onload = TestClick; //测试未按下任何键

        </script>

        <div>

            <p id="display"></p>

        </div>

2.键盘事件

键盘事件种类不多,仅三种事件。

keydown(按下某键,一直按住会持续触发)

keypress(按下某键并产生字符时触发,即忽略Shift、Alt,ctrl等功能键)

keyup(释放某个键时触发)

键盘监听示例:

<script language="javascript">

            function handle(oEvent) {

                if (window.event) oEvent = window.event; //处理兼容性,获得事件对象

                var oDiv = document.getElementById("display");

                oDiv.innerHTML += oEvent.type + " "; //输出事件名称

            }

            window.onload = function() {

                var oTextArea = document.getElementById("textin");

                oTextArea.onkeydown = handle; //监听所有键盘事件

                oTextArea.onkeyup = handle;

                oTextArea.onkeypress = handle;

            }

        </script>

        <div>

            <textarea rows="4" cols="50" id="textin">

            </textarea>

            <p id="display"></p>

        </div>

对于键盘而言,最重要的不是事件的名称,而是所按的是什么键。由于ie没有charCode属性,而keyCode只有在keydown、keyup事件发生的时才与标准dom的keycode相同,

在keypress事件中等同于keycode,因此采用以下方法。

oEvent.charCode = (oEvent.type == "keypress")?oEvent.keycode:();

之所以不采用keyCode是因为它表示键盘按键,而不是输出的字符,因此,输出“a”和“A”,keycode是等值的,charcode则以字符区分。

另外在keypress中,标准dom的keycode值始终为0;

例子:键盘事件的相关属性:

<script language="javascript">

            function handle(oEvent) {

                var oDiv = document.getElementById("display");

                if (window.event) oEvent = window.event; //处理兼容性,获得事件对象

                //设置ie charcode的值

                oEvent.charCode = (oEvent.type == "keypress") ? oEvent.keyCode : 0;

                oDiv.innerHTML += oEvent.type + ":charCode" + oEvent.charCode + "keyCode" + oEvent.keyCode + "<br>"; //输出测试

            }

            window.onload = function() {

                var oTextArea = document.getElementById("textin");

                oTextArea.onkeydown = handle; //监听所有键盘事件

                oTextArea.onkeypress = handle;

            }

        </script>

        <div>

            <textarea rows="4" cols="50" id="textin">

            </textarea>

            <p id="display"></p>

        </div>

3.htm事件

对于浏览器而言,各种html有着自己的事件,有一些也是用户常常接触到的,比如load,error,select等,常用的html事件如下:

DOM基础教程之事件类型

load事件是常用的事件之一,因为在页面载入完成之前,dom的框架还没有搭建完成,因此任何相关操作都不能发生。

给window对象分配load,unload事件等同于<body>标记的onload和onunload方法。

Javascript 相关文章推荐
ASP中用Join和Array,可以加快字符连接速度的代码
Aug 22 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
Sep 25 Javascript
javascript实现回到顶部特效
May 06 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
Mar 14 Javascript
bootstrap datetimepicker控件位置异常的解决方法
Nov 23 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
Aug 24 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
Sep 21 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
Jan 20 #Javascript
DOM基础教程之事件对象
Jan 20 #Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 #Javascript
js实现的捐赠管理完整实例
Jan 20 #Javascript
JS自定义对象实现Java中Map对象功能的方法
Jan 20 #Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 #Javascript
DOM基础教程之使用DOM + Css
Jan 20 #Javascript
You might like
php 中英文语言转换类
2011/09/07 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
让alert不出现弹窗的两种方法
2014/05/18 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
2016/05/18 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
在weex中愉快的使用scss的方法步骤
2020/01/02 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
Python中的sort()方法使用基础教程
2017/01/08 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
python程序输出无内容的解决方式
2020/04/09 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
医药大学生求职简历的自我评价
2013/10/17 职场文书
双十佳事迹材料
2014/01/29 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
英语教学随笔感言
2014/02/20 职场文书
国庆促销活动总结
2014/08/29 职场文书
大学学生个人总结
2015/02/15 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
婚宴主持词
2015/06/30 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis