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 相关文章推荐
表单项的name命名为submit、reset引起的问题
Dec 22 Javascript
网站页面自动跳转实现方法PHP、JSP(上)
Aug 01 Javascript
js 自制滚动条的小例子
Mar 16 Javascript
使用jquery实现div的tab切换实例代码
May 27 Javascript
jquery实现图片翻页效果
Dec 23 Javascript
基于javascript实现checkbox复选框实例代码
Jan 28 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
Mar 18 Javascript
dul无法加载bootstrap实现unload table/user恢复
Sep 29 Javascript
JavaScript中的await/async的作用和用法
Oct 31 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
Jun 13 Javascript
javascript实现计算指定范围内的质数示例
Dec 29 Javascript
node事件循环和process模块实例分析
Feb 14 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/07/04 PHP
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
PHP实现数组递归转义的方法
2014/08/28 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
php文件上传类的分享
2017/07/06 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
Javascript 继承实现例子
2009/08/12 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
[10:18]2018DOTA2国际邀请赛寻真——找回自信的TNCPredator
2018/08/13 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
Python类中方法getitem和getattr详解
2019/08/30 Python
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
西班牙多品牌鞋店连锁店:Krack
2018/11/30 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
Java servlet面试题
2012/03/04 面试题
四风对照检查材料范文
2014/09/27 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
团委工作总结2015
2015/04/02 职场文书
2017春节晚会开幕词
2016/03/03 职场文书
年终工作总结范文
2019/06/20 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书