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 相关文章推荐
语义化 H1 标签
Jan 14 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
Apr 20 Javascript
利用javascript数组长度循环数组内所有元素
Dec 27 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
Feb 07 Javascript
深入理解javascript变量声明
Nov 20 Javascript
谈一谈javascript中继承的多种方式
Feb 19 Javascript
Node.js操作Firebird数据库教程
Mar 04 Javascript
jQuery短信验证倒计时功能实现方法详解
May 25 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
zTree实现节点修改的实时刷新功能
Mar 20 Javascript
微信小程序实现导航栏选项卡效果
Jun 19 Javascript
详解json串反转义(消除反斜杠)
Aug 12 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安全开发库中文详细介绍
2015/03/22 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
Python中的__SLOTS__属性使用示例
2015/02/18 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
pandas带有重复索引操作方法
2018/06/08 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
python 实现生成均匀分布的点
2019/12/05 Python
python 实用工具状态机transitions
2020/11/21 Python
解决方案设计综合面试题
2015/08/31 面试题
2013年研究生毕业感言
2014/02/06 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
综合办公室主任岗位职责
2015/04/01 职场文书
无罪辩护词范文
2015/05/21 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
员工考勤管理制度
2015/08/06 职场文书
高中美术教学反思
2016/02/17 职场文书
python和anaconda的区别
2022/05/06 Python