js事件基础
2017-08-23 13:57
387 查看
1、Html标签中写事件 2、DOM 0级 document.getElementById('xx').onclick = function(){}... document.getElementById('xx').onclick = null; //删除 3、 DOM 2级 非IE8以上(不包括IE8、谷歌、火狐等支持的) //第三个参数false 开启冒泡效率高 ,默认为true捕获事件,效率低 //这个在事件方法名上一定没有on (onlcick,onchnage。。) document.getElementById('xx').addEventListener('click',demoFunction,false); document.getElementById('xx').removeEventListener('click',demoFunction,false);//删除,参数必须跟添加一样方法名如果是匿名函数无法删除 //事件捕获、冒泡 //冒泡:由内向外 //捕获:由外向内 document.getElementById('xx').addEventListener('click',function(){},true) //第三个参数为true,则是事件捕获,由外向内,如果多层点击内层,由外向内执行多次才会执行到,效率低 document.getElementById('xx').addEventListener('click',function(){},false) //第三个参数为false(默认false,为了兼容性建议不要省略),则是事件冒泡,由内向外,如果多层点击内层,由内向外执行一次就会执行到,效率高 IE8以下包括IE8 //必须加on document.getElementById('xx').attachEvent('onclick',demoFunction); document.getElementById('xx').detachEvent('onclick',demoFunction); IE 非IE兼容性 4、对象绑定事件触发事件 var eventUtil={ addHandel:function(ele,handel,func){ if(ele.addEventListener){ ele.addEventListener(func,handel,false); }else if(ele.attachEvent){ ele.attachEvent('on'+func,handel); }else{ ele['on'+func] = handel; } }, removeHandel:function(ele,handel,func){ if(ele.addEventListener){ ele.removeEventListener(func,handel); }else if(ele.attachEvent){ ele.detachEvent('on'+func,handel); }else{ ele['on'+func] = null; } } } var ele = document.getElementById('my'); eventUtil.addHandel(ele,tan,'click'); function tan(){ alert(1); } 5、事件对象 A、非IE下、IE8以上(不包括IE8) function test(event){ } 常用事件对象属性: event.type : 事件方法('click'、'change'。。。); event.target : 该事件的目标,对象 event.bubbles event. canselable 常用事件对象方法: event.stopPropagation() :阻止事件冒泡 event.preventDefault():阻止事件默认行为,例如a 默认行为就是跳转,就是默认阻止其跳转 B、IE8以下包括IE8 function test(event){ } 常用事件对象属性: event.type : 事件方法('click'、'change'。。。); event.srcElement: 该事件的目标,对象 event.bubbles event. canselable 常用事件对象方法: event.cancelBubble() :阻止事件冒泡,设置为true阻止冒泡事件,false不阻止冒泡 event.cancelBubble = true; 执行才当方法 event.returnValue():设置为fasle阻止事件默认行为 event.returnValue = false; 执行才当方法 兼容IE、火狐、谷歌等 var event = window.event || event; //ie8及以下window.event、w3c浏览器event var type = event.type; var obj = event.targer || event.srcElement; var eventUtil = { addHandler:function(ele,type,handler){ if(ele.addEventListener){ ele.addEventListener(type,handler,false); }else if(ele.attachEvent){ ele.attachEvent('on'+type,handler); }else{ ele['on'+type] = handler; } }, removeHandler:function(ele,type,handler){ if(ele.addEventListener){ ele.removeEventListener(type,handler); }else if(ele.attachEvent){ ele.detachEvent('on'+type,handler); }else{ ele['on'+type] = null; } }, getEvent:function(event){ return event = window.event || event; }, preventDefault:function(event){ event = window.event || event; if(event.preventDefault()){ event.preventDefault(); }else{ event.returnValue = false; } }, stopPropagation:function(event){ event = window.event || event; if(event.stopPropagation()){ event.stopPropagation(); }else{ event.cancelBubble = true; } }, getType:function(event){ event = window.event || event; return event.type; }, getTarget:function(event){ event = window.event || event; return event.target ? event.target : event.srcElement; } } 6、键盘事件 keyup:键盘任意按键释放触发(用的比较多) keydown:键盘任意按键按下触发,按住不放会重复触发 keypress:键盘字符按键按下触发,按住不放会重复触发 event.coden : 键盘按下的键码(对应建瓯按上的按键),回车是13 、空格32 7、事件委托:给table绑定事件,操作给里面的td document.getElementsByTagname('table')[0].onclick = function(e){ e.target.style.background = 'black'; //e.target: 具体点击的那个td格子 }
相关文章推荐
- node.js零基础详细教程(4):node.js事件机制、node异步IO操作
- JS基础——事件绑定
- 移动端JS 触摸事件基础
- js核心基础之Events事件机制(事件冒泡、事件捕获、事件执行顺序、阻止冒泡)
- js基础练习---简单划过显示事件
- js玩具——UI组件:EventListener 事件监听器基础接口
- JS基础学习第四天:条件控制语句、循环语句、函数模块、事件等通用代码块
- vue.js--基础 事件结合双向数据绑定实现todolist 待办事项 已经完成 和进行中,键盘事件
- js实现类似jquery基础功能 简单选择器/事件/属性
- 移动端JS 触摸事件基础
- JS基础内容小结(event 鼠标键盘事件)(三)
- JS事件基础
- js基础学习资料!for循环,监听事件
- 移动端JS 触摸事件基础
- C#-WebForm-JS知识:基础部分、BOM部分、DOM部分、JS事件
- js基础 事件基础一
- 前端基础 JS DOM事件(2)
- js核心基础之Events事件机制(移动端事件、PC端事件、事件穿透)
- js移动端事件基础及常用事件库详解
- 2016年5月27日上午(妙味课堂js基础-3笔记一(事件))