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下function声明一些小结
Dec 28 Javascript
用tip解决Ext列宽度不够的问题
Dec 13 Javascript
JavaScript立即执行函数的三种不同写法
Sep 05 Javascript
jquery获取当前元素索引值用法实例
Jun 10 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 Javascript
js学习笔记之事件处理模型
Oct 31 Javascript
JS常用加密编码与算法实例总结
Dec 22 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
Jan 16 Javascript
微信小程序 图片边框解决方法
Jan 16 Javascript
BootStrap数据表格实例代码
Sep 13 Javascript
Vue2.X 通过AJAX动态更新数据
Jul 17 Javascript
Vue-CLI项目中路由传参的方式详解
Sep 01 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
浅析iis7.5安装配置php环境
2015/05/10 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
javascript实用小函数使用介绍
2013/11/11 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
JS验证邮件地址格式方法小结
2015/12/01 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
Python 中的with关键字使用详解
2016/09/11 Python
python使用tornado实现登录和登出
2018/07/28 Python
python3转换code128条形码的方法
2019/04/17 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
一道SQL存储过程面试题
2016/10/07 面试题
幼儿园保育员辞职信
2014/01/12 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
开票证明
2015/06/23 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript
SQL Server实现分页方法介绍
2022/03/16 SQL Server
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript