原生JS的事件绑定
来源:互联网 发布:eve数据地点 编辑:程序博客网 时间:2024/05/21 17:55
事件添加的三种方式
- 通过HTML的属性添加事件
- DOM0级的事件绑定
- DOM2级的事件绑定
一、通过HTML的属性添加事件
<div onclick="something()"></div>
缺点:耦合性大,不易于维护,仅可添加一个事件
二、DOM0级的事件绑定
var target=document.getElementById("target");target.onclick=function(){ alert("Hello!");}
缺点:仅能为当前页面已加载的DOM节点进行事件绑定,若添加多个同类型事件,则后来的事件会覆盖原有的事件
三、DOM2级的事件绑定
var target=document.getElementById("target");if(target.addEventListener){ //调用addEventListener方法,获取触发事件的目标节点通过e.target target.addEventListener("click",clickFunction,false);}else{ //兼容IE,调用attachEvent方法,获取触发事件的目标节点通过e.srcElement target.attachEvent("onclick",clickFunction);}
优点:可为页面后续添加的DOM节点一并绑定事件
应用场景:事件代理,即在需要为拥有共同直接父节点的一类DOM节点绑定相似的事件时,只需给这类DOM节点的父节点绑定事件,利用事件冒泡原理,子节点触发的事件,让它的父元素代替执行。
addEventListener语法
element.addEventListener(event, function, useCapture)
- event 必须。字符串,指定事件名。注意: 不要使用 “on” 前缀。 例如,使用 “click” ,而不是使用 “onclick”。
- function 必须。指定要事件触发时执行的函数。
- useCapture 可选。布尔值,默认为false(事件句柄在冒泡阶段执行),指定事件是否在捕获或冒泡阶段执行。
attachEvent语法
element。attachEvent(event, function)
- event 必须。字符串,指定事件名。注意: 使用 “on” 前缀。 例如,使用 “onclick” ,而不是使用 “click”。
- function 必须。指定要事件触发时执行的函数。
事件代理(事件委托)Demo
<ul id="list"> <li><a href="#"></a></li> <li><a href="#"></a></li> <li><a href="#"></a></li></ul>
//点击表单里的任意一个a标签,将该标签所在的li标签背景色变为红色var list=document.getElementById("list");list.addEventListener('click',function(e){ if (e.target && e.target.nodeName.toUpperCase() == 'A') { e.target.parentNode.style.backgroundColor="red"; };})
阅读全文
0 0
- 原生JS的事件绑定
- 原生JS的事件绑定
- 原生js事件的绑定和解除
- 原生js事件批量绑定-事件委托
- 原生js和jquery框架下绑定事件的方法
- 原生JS绑定事件的兼容性写法与绑定事件的几种方法
- 原生js绑定和解除事件
- React Native 原生与JS之间事件绑定注册 作用在于原生可以直接调用JS的方法
- 原生js事件绑定和事件移除
- jQuery事件绑定和JavaScript原生事件绑定的区别
- [TOP]原生JS事件绑定方法以及jQuery绑定事件方法bind、live、on、delegate的区别
- js事件的绑定
- js的事件绑定
- 兼容IE9以下和非IE浏览器的原生js事件绑定函数
- 原生JS绑定滑轮滚动事件,兼容浏览器
- js 事件绑定的方法
- js 事件绑定的方法
- JS事件绑定的方法
- 【问题】VS2010 VS2012 VS2013 安装之后提示 "无法打开文件 kernel32.lib" 解决方案
- 机器学习week1-Introduction
- Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据
- 在Android(AS)中调用unity场景(view)
- HttpUrlConnection的get请求方式
- 原生JS的事件绑定
- Android打开自启动设置页面
- GET请求net::ERR_CONNECTION_RESET的一种情况
- 设计模式---创建模式------工厂模式
- HDU 5514 Frog 容斥(技巧)
- shared_ptr的引用计数原理
- ActiveMQ多集群的负载均衡
- 有趣的js匿名函数写法
- Linux服务器性能评估与优化(二)