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 相关文章推荐
javascript第一课
Feb 27 Javascript
JS动态添加option和删除option(附实例代码)
Apr 01 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
jQuery获得指定元素坐标的方法
Apr 14 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
javascript跑马灯抽奖实例讲解
Apr 17 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
Jul 18 Javascript
Vue中computed与methods的区别详解
Mar 24 Javascript
js监听html页面的上下滚动事件方法
Sep 11 Javascript
vue-better-scroll 的使用实例代码详解
Dec 03 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
Jun 24 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
javascript之函数直接量(function(){})()
2007/06/29 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
Python入门教程之运算符与控制流
2016/08/17 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
python中模块的__all__属性详解
2017/10/26 Python
python命令行工具Click快速掌握
2019/07/04 Python
Python中类似于jquery的pyquery库用法分析
2019/12/02 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
Python短信轰炸的代码
2020/03/25 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
德国综合购物网站:OTTO
2018/11/13 全球购物
业务主管岗位职责范本
2013/12/25 职场文书
幼儿园家长寄语
2014/04/02 职场文书
大明湖导游词
2015/02/03 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
信息技术研修心得体会
2016/01/08 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python