给dom元素添加事件的监听
2019-02-23 10:28
429 查看
一、addEventListener给dom元素添加事件的监听有两种方式
1.用匿名函数方式添加事件的监听
例
<head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <button class="classname">按钮</button> <button class="classname">按钮</button> <button class="classname">按钮</button> <button class="classname">按钮</button> <button class="classname">按钮</button> <script> var btnlist=document.getElementsByClassName("classname"); for(var i=0;i<btnlist.length;i++){ btnlist[i].addEventListener("click", function(){ console.log("my"); }) } </script> </body>
2.用外部函数添加事件的监听
例
<script> var btnlist=document.getElementsByClassName("classname"); for(var i=0;i<btnlist.length;i++){ btnlist[i].addEventListener("click",btnvase); //是取函数的名称,而不是调用函数;即只能写该函数的名称btnvase,不能写成btnvase(); function btnvase(){ console.log("my"); } } </script>
不能用(var btnvase=function(){}的函数形式添加事件的监听,此函数没有预编译功能)
二、removeEventListener移除事件句柄
在使用removeEventListener移除事件句柄时,addEventListener使用的函数必须是外部函数,匿名函数(addEventListener(“click”,function(){ }))是无法移除的。
例:
<script> var btnlist=document.getElementsByClassName("classname"); for(var i=0;i<btnlist.length;i++){ btnlist[i].addEventListener("click",btnvase); function btnvase(){ console.log("my"); this.removeEventListener("click",btnvase);//this指在当前事件里面执行的对象 } } </script>
相关文章推荐
- Javascript基础(4)事件的监听 及 传递、DOM添加元素
- 向ext的form表单元素添加click监听事件
- Ajax成功添加新DOM元素 jquery 绑定元素事件
- 给dom元素添加事件处理的两种方法
- Ajax成功添加新DOM元素 jquery 绑定元素事件
- jquery给动态添加的dom元素绑定事件
- ionic3+angular4中给DOM添加监听事件后报错:Uncaught (in promise): TypeError: Cannot read property 'addEventListen
- 新添加的元素监听事件
- vue 初始化为dom元素添加事件 vm.$nextTick( [callback] )
- JQ动态添加DOM元素绑定事件
- 第5天(就业班) BOM、window对象、事件、location对象、screen对象、Dom编程根据属性找节点、通过关系找节点、添加附件、联动框、操作元素的css样式、正则表达式
- input元素添加监听事件
- jquery 解决使用append添加元素后监听事件消失的问题
- js 给dom元素添加事件
- 如何在通过knockout数据绑定的DOM元素上添加事件
- 原生js中的事件委托(为新添加的DOM元素添加事件)
- jquery实现级联遇到的ajax同步请求、动态DOM元素监听事件
- js动态创建的元素添加监听事件
- js 获取当前焦点所在的元素、给元素和input控件添加键盘监听事件、添加页面级的键盘监听事件
- javascript,jquery动态添加dom元素,并设定css属性,点击事件