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 相关文章推荐
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 Javascript
jquery插件制作 提示框插件实现代码
Aug 17 Javascript
充分发挥Node.js程序性能的一些方法介绍
Jun 23 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
Sep 04 Javascript
js实现五星评价功能
Mar 08 Javascript
jquery事件与绑定事件
Mar 16 Javascript
javascript实现文字无缝滚动效果
Aug 26 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
VSCode 配置React Native开发环境的方法
Dec 27 Javascript
vue中子组件传递数据给父组件的讲解
Jan 27 Javascript
layui文件上传控件带更改后数据传值的方法
Sep 23 Javascript
vue项目从node8.x升级到12.x后的问题解决
Oct 25 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
cloudgamer出品ImageZoom 图片放大效果
2010/04/01 Javascript
js window.open弹出新的网页窗口
2014/01/16 Javascript
js实现日期级联效果
2014/01/23 Javascript
jQuery中:input选择器用法实例
2015/01/03 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
JQuery基础语法小结
2015/02/27 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
在 Vue 应用中使用 Netlify 表单功能的方法详解
2019/06/03 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
详解Python中列表和元祖的使用方法
2015/04/25 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
对Python中plt的画图函数详解
2018/11/07 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
2019/05/13 Python
linux环境下Django的安装配置详解
2019/07/22 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
装潢设计实习自我鉴定
2013/09/19 职场文书
淘宝活动总结范文
2014/06/26 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
申请吧主发表的感言
2015/08/03 职场文书