javascript中的removeEventListener失效问题
一般现在我们用js绑定事件是 addEventListener(event,function,bool)
event:事件的名称 字符串 如:'click',
function: 事件处理的方法:
bool: 事件的处理方式; false 冒泡,true 捕获
这里就不过得的说明 addEventListener 这个方法了
下面是主题 removeEventListener (event,function,bool) 参数和 addEventListener 的参数一样,不多做解释
下面我遇到的具体问题
我在 很多a标签循环绑定事件的时候,发现 removeEventListener 失效了
具体写法如下:
绑定事件:
var list = document.getElementsByTagName('a');
for (var i = list.length - 1; i >= 0; i--) {
list[i].addEventListener('click',function(e){
console.log('addEventListener');
return false;
},false);
};
取消事件:
for (var i = list.length - 1; i >= 0; i--) {
list[i].removeEventListener('click',function(){
console.log('removeEventListener');
},false);
};
发现取消事件不管用了,找了好久有人说 function需要和绑定的方法是一个,这样才能取消
最后解决为:
function addAndRemove(){
console.log('add');
console.log('remove');
}
for (var i = list.length - 1; i >= 0; i--) {
list[i].addEventListener('click',addAndRemove,false);
};
for (var i = list.length - 1; i >= 0; i--) {
list[i].removeEventListener('click',addAndRemove,false);
};
最后只是知道了绑定和取消需要用同一个函数,但是不知道为什么,希望有大牛给解释一下!!!!
javascript中的removeEventListener失效问题的更多相关文章
- javascript中的cookie,以及事件解析
Cookie: 它的意思是在本地的客户端的磁盘上以很小的文件形式保存数据,Cookie的处理原则上需要在服务器环境下运行,目前Chrome不可以在客户端操作Cookie,其他浏览器均可以, Coo ...
- JavaScript 中 4 种常见的内存泄露陷阱
了解 JavaScript 的内存泄露和解决方式! 在这篇文章中我们将要探索客户端 JavaScript 代码中常见的一些内存泄漏的情况,并且学习如何使用 Chrome 的开发工具来发现他们.读一读吧 ...
- JavaScript 中常见的内存泄露陷阱(摘)
内存泄露是每个开发者最终都不得不面对的问题.即便使用自动内存管理的语言,你还是会碰到一些内存泄漏的情况.内存泄露会导致一系列问题,比如:运行缓慢,崩溃,高延迟,甚至一些与其他应用相关的问题. 什么是内 ...
- Javascript中关于cookie的那些事儿
Javascript-cookie 什么是cookie? 指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).简单点来说就是:浏览器缓存. cookie由什 ...
- 深入浅出 妙用Javascript中apply、call、bind
apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. Jav ...
- 【优雅代码】深入浅出 妙用Javascript中apply、call、bind
这篇文章实在是很难下笔,因为网上相关文章不胜枚举. 巧合的是前些天看到阮老师的一篇文章的一句话: “对我来说,博客首先是一种知识管理工具,其次才是传播工具.我的技术文章,主要用来整理我还不懂的知识.我 ...
- javascript中的一些核心知识点以及需要注意的地方
前言 近期杂事甚多,这些事情的积累对知识体系的提升有好处,但是却不能整理出来,也整理不出来 比如说我最近研究的Hybrid在线联调方案便过于依赖于业务,就算分享也不会有人读懂,若是抽一点来分享又意义不 ...
- (转)深入浅出 妙用Javascript中apply、call、bind
原文连接 深入浅出 妙用Javascript中apply.call.bind 网上文章虽多,大多复制粘贴,且晦涩难懂,我希望能够通过这篇文章,能够清晰的提升对apply.call.bind的认识,并且 ...
- Javascript中apply、call、bind
网上文章虽多,大多复制粘贴,且晦涩难懂,我希望能够通过这篇文章,能够清晰的提升对apply.call.bind的认识,并且列出一些它们的妙用加深记忆. apply.call 在 javascript ...
随机推荐
- esayui-datagrid的使用
第一步:在页面上引入easyui的jQuery链接 <script src="../../Scripts/easyUI/jquery-1.7.2.min.js" type=& ...
- Web Browser使用技巧
无论是在桌面级开发中,还是在手机端开发中,WebBrowser都是一个经常会用到的控件.Windows Phone中的WebBrowser虽然远远没有桌面版那么强大,但依然足够应付常规用途.本文就来介 ...
- magento问题集3
MISSING LANGUAGE FILES OR DIRECTORIES A:已经装了俄语包,也是russian目录,在前台也可以用.但是在后台最上面总是显示MISSING LANGUAGE FIL ...
- jQuery对象与DOM对象之间的转换
刚开始学习jQuery,可能一时会分不清楚哪些是jQuery对象,哪些是DOM对象.至于DOM对象不多解释,我们接触的太多了,下面重点介绍一下jQuery,以及两者相互间的转换. 什么是jQuery对 ...
- java基础篇-jar打包
以helloworld程序为例: 一:正常流程: 1.首先编写一个hello.java的程序: public class Hello { public static void main(String[ ...
- Linux磁盘文件的命名
磁盘的常用接口有两种:IDE和SATA接口,目前主流的是SATA接口. IDE接口由IDE扁平电缆线连接,一个电缆可连接两个IDE接口,通常主机又都会提供两个IDE接口,因此最多可以接到四个IDE设备 ...
- linux安装phpredis扩展
1.下载扩展安装包 wget https://github.com/nicolasff/phpredis/downloads 2.解压 tar -zxvf nicolasff-phpredis-2 ...
- c#部分---递归题目;猴子摘桃
//猴子摘了好多好多桃子,一天需要吃掉总数的2/3, //觉得不过瘾,还得再多吃一个 //吃到第9天的时候,发现只有2个桃子了 //问,当初猴子摘了多少桃子 class Program { publi ...
- CentOS搭建Httpd Pyhton3 Django环境
系统环境 centos-6-x86 系统自带httpd 编译安装Python3 pip3 参考 http://www.cnblogs.com/vawter/p/6254170.html 编译安装wsg ...
- leetcode 123. Best Time to Buy and Sell Stock III ----- java
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...