JS中的事件分类

来源:互联网 发布:java无法访问的语句 编辑:程序博客网 时间:2024/05/21 17:10

JS中的事件分类
* 1、鼠标事件
* click/dblclick/onmouseover/onmouseout
*
* 2、 HTML事件
* onload/onscroll/onsubmit/onchange/onfocus
*
* 3、 键盘事件
* keydown: 键盘按下时触发
* keypress:键盘按下并松开的瞬间触发
* keyup: 键盘抬起时触发
*
* [注意事项]
* ① 执行顺序: keydown->keypress->keyup
* ② 当长按时,会循环执行keydown->keypress
* ③ 有keydown并不一定有keyup,当事件触发过程中,鼠标将光标移走,将导致没有keyup
* ④ keypress只能捕获键盘上的数字、字符、符号键,不能捕获各种功能键,而keydown和keyup可以。
* ⑤ keypress支持区分大小写,keydown和keyup并不支持。
*
* [确定触发的按键]
* ① 在触发的函数中,传入一个参数e,表示键盘事件;
* ② 使用e.keyCode,取到按键的Ascii码值,进而确定触发按键;
* ③ 所有浏览器的兼容写法(一般并不需要):
* var evn = e || event;
* var code = evn.keyCode || evn.which || evn.charCode;
【JS中的DOM0事件模型】
* 1、 内联模型(行内绑定):直接将函数名作为HTML标签的某个事件属性的属性值;
* eg:DOM0内联模型
* 优点:使用方便。
* 缺点: 违反了W3C关于HTML与JavaScript分离的基本原则;
*
* 2、 脚本模型(动态绑定):在JS脚本中,取到某个节点,并添加事件属性;
* eg: window.onload = function(){}
* 优点: 实现了HTML与JavaScript的分离。
* 缺点: 同一个节点,只能绑定一个同类型事件。 如果绑定多次,最后一个生效。
*

   DOM2事件模型             * 1、添加事件绑定方式:             *    ① IE8之前: btn2.attachEvent("onclick",函数);             *    ② 其他浏览器: btn2.addEventListener("click",函数,true/false);             *      参数三: false(默认) 表示事件冒泡  true 表示事件捕获             *              *    ③ 兼容写法: if(btn2.attachEvent){             *                  btn2.attachEvent();             *                }else{             *                   btn2.addEventListener();             *                }             *                  * 2、 优点    ① 可以给同一节点,添加多个同类型事件;             *          ② 提供了可以取消事件绑定的函数。             *               * 3、 取消DOM2事件绑定:             *     注意:如果要取消DOM2的事件绑定,那么在绑定事件时,处理函数必须要使用有名函数,而不能使用匿名函数。             *     btn2.removeEventListener("click",func2);             *     btn2.detachEvent("onclick",func2);