事件处理
来源:互联网 发布:西门子plc软件tla 编辑:程序博客网 时间:2024/05/29 08:27
DOM 0 级事件处理
比如通过getElementById页面获取要处理的元素,再把一个函数赋予它的onclick属性。
var btn = document.getElementById("button");btn.onclick = function(){return alert("Clicked");}这时,事件处理程序是在元素的作用域中运行。
DOM 2 级事件处理
有两个方法:addEventListener() , removeEventListener(). 它们都包含3个参数:事件名称(click),处理的方法,true(捕获阶段处理)/false(冒泡阶段处理)。
DOM中所有节点都有这两个方法。
addEventListener()的事件只能通过removeEventListener()来清除,且参数一致。所以如果中间写的处理方法为匿名函数的话,就无法清除,因此要用函数表达式的方法,把函数赋值给一个变量。
var btn = document.getElementById("button");var handler = function(){return this.id;};btn.addEventListener("click", handler, false);btn.removeEventListener("click", handler, false);这时,事件处理程序是在元素的作用域中运行。顺序执行
注意:在IE中为,attachEvent, detachEvent; 第一个参数为onclick, 且没有第三个参数(全在冒泡阶段处理)。从最后一个attachEvent执行,依次往前。
在全局作用域中运行。
跨浏览器事件处理:
var domEvent = { //element:dom对象,event:待处理的事件,handleFun:处理函数 //事件名称,不含“on”,比如“click”、“mouseover”、“keydown”等 addEvent:function(element,event,handleFun){ //addEventListener----应用于mozilla if(element.addEventListener){ element.addEventListener(event,handleFun,false); }//attachEvent----应用于IE else if(element.attachEvent){ element.attachEvent("on"+event,handleFun); }//其他的选择dom0级事件处理程序 else{ //element.onclick===element["on"+event]; element["on"+event] = handleFun; } }, //事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等 removeEvent:function(element,event,handleFun){ //removeEventListener----应用于mozilla if (element.removeEventListener) { element.removeEventListener(event,handleFun,false); }//detachEvent----应用于IE else if (element.detachEvent) { element.detachEvent("on"+event,handleFun); }//其他的选择dom0级事件处理程序 else { element["on"+event] = null; } }, //阻止事件冒泡 stopPropagation:function(event){ if(event.stopPropagation){ event.stopPropagation(); }else{ event.cancelBubble = true;//IE阻止事件冒泡,true代表阻止 } }, //阻止事件默认行为 preventDefault:function(event){ if(event.preventDefault){ event.preventDefault(); }else{ event.returnValue = false;//IE阻止事件冒泡,false代表阻止 } }, //获得事件元素 //event.target--非IE //event.srcElement--IE getElement:function(event){ return event.target || event.srcElement; }, //获得事件 getEvent:function(event){ return event? event : window.event; }, //获得事件类型 getType:function(event){ return event.type; } };
0 0
- 事件处理
- 事件处理
- 事件处理
- 处理事件
- 事件处理
- 事件处理
- 事件处理
- 事件处理
- 处理事件
- 事件处理
- 事件处理
- 事件处理
- 事件处理
- 事件处理
- 事件处理
- 事件处理
- 事件处理
- 事件处理
- git暂存区
- 一个“圈钱”游戏的设计方案
- PAT-A1096
- PAT-A1097
- PAT-A1099
- 事件处理
- AR入门系列-在vuforia官网的使用-01-史上最详细AR入门教程
- 一致性哈希
- POJ1258prime最小生成树
- windows开发者的福音-cmder
- android反编译-smali语法
- tomcat 崩溃疑问笔记
- python-函数
- 七、[LeetCode OJ]Median of Two Sorted Arrays