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 ...
随机推荐
- 查询语句中select from where group by having order by的执行顺序
查询语句中select from where group by having order by的执行顺序 1.查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from--w ...
- 《more effective c++》条款26 限制类对象的个数
问题: 如何限制类对象的个数?比如1个,10个等等. 方法(1): 将类的构造函数定义为private,那么就无法实例化这个类了.但是如何创建1个对象出来?方法有2种: 1.声明一个友元函数,那么在友 ...
- Generic Netlink详解
netlink socket是一种用于用户态进程和内核态进程之间的通信机制.它通过为内核模块提供一组特殊的API,并为用户程序提供了一组标准的socket接口的方式,实现了全双工的通讯连接. Netl ...
- 关于java发起http请求
我们到底能走多远系列(41) 扯淡: 好久没总结点东西了,技术上没什么总结,感觉做事空牢牢的.最近也比较疲惫. 分享些东西,造福全人类~ 主题: 1,java模拟发起一个http请求 使用HttpUR ...
- JavaScript----函数的封装、继承和多态
1.封装:把实现一个功能的代码放在一个函数中封装起来,以后再想实现这个功能的时候,我们不需要重新的编写代码了,只需要执行对应的函数即可,我们把这种机制就称之为"函数的封装"--&g ...
- socket 简介
对TCP/IP.UDP.Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵.那么我想问: 1. 什么是TCP/IP.UDP?2. Sock ...
- 自动将String类型的XML解析成实体类
package com.mooc.freemarker2dto; public class BaseDto { } package com.mooc.freemarker2dto; public cl ...
- N皇后回溯解法 leetcode N-Queens
class Solution { public: vector<vector<string> > solveNQueens(int n) { vector<vector& ...
- OOP作业
1,定义一个水果类(fruit),水果类中的有[属性]:颜色(color).价格(price).重量(weigth),再定义一个<测试类>,创建一个苹果(apple)的对象, 颜色是&qu ...
- 织梦DedeCMS"当前位置"去除最后一个 > 符号的方法
首先找到根目录下面的include 目录,然后找到 typelink.class.php 文件, 再查找到 GetPositionLink 方法 下面的 return $this->valueP ...