js滚动条事件监听addEventListener、removeEventListener不生效
//移除监听需要满足
- 需要移除的事件类型必须是一样的, 比如: click
- 需要从目标事件移除的 EventListener 函数必须和 addEventListener 中注册的是同一个, 也就是说引用地址是相同的
- 指定需要移除的 EventListener 函数的useCapture 和 addEventListener 中注册的相同的
写法1
//定义一个对象,对象中定义一个handleEvent函数
this.scrollShowButtonHandel = {handleEvent: function (e) {var pageHeight = $(".main-content").height() - $(window).height() - 100;if (pageHeight > 0 && e.target.scrollTop > pageHeight) {$("#btnSave").show();}else {$("#btnSave").hide();}}}// 绑定监听事件
window.addEventListener("scroll", this.scrollShowButtonHandel, true);
// 接触绑定
window.removeEventListener("scroll", this.scrollShowButtonHandel, true);
写法2
//定义一个函数
scrollShowButton: function (e) {var pageHeight = $(".main-content").height() - $(window).height() - 100;if (pageHeight > 0 && e.target.scrollTop > pageHeight) {$("#btnSave").show();}else {$("#btnSave").hide();}},window.addEventListener("scroll", this.scrollShowButton, true);
window.removeEventListener("scroll", this.scrollShowButton, true);//注意:this.scrollShowButton.bind(this)这种写法bind会创建一个新函数,函数的内存地址会变,故会导致移除绑定失败
参考:你所不知道的scroll事件:为什么scroll事件会失效? | Ayase-252's wonderland
EventTarget.removeEventListener() 取消监听事件不起作用(失效)的原因 | 种子的信仰
EventTarget.removeEventListener - Web API 接口参考 | MDN
EventListener | MDN
Function.prototype.bind() - JavaScript | MDN
js滚动条事件监听addEventListener、removeEventListener不生效相关推荐
- js: 添加事件监听addEventListener、移除事件监听removeEventListener
文档 https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener https://developer.m ...
- JS的事件监听与委托机制
JS的事件监听机制 小故事: 很久以前有个叫Netscape的姑娘,她制订了Javascript的一套事件驱动机制(即事件捕获) 后来又有一个叫"IE"的小子,这孩子比较傲气,他认 ...
- html js按钮事件监听,JS监听事件
对象 - JS监听事件 ¶ 作者:KK 发表日期:2016.2.21 在准备讲解后面的window对象之前,这里将话题转回来事件这里 平时咱们在一个元素里加个onclick属性,属性值写JS代码,这样 ...
- JS事件汇总,addEventListener添加事件监听
JS事件汇总 JavaScript 事件 JS事件汇总 鼠标事件 键盘事件 表单事件 读取事件 onload与onpageshow事件区别 其它事件 addEventListener()添加事件监听 ...
- EventTarget.addEventListener()事件监听
文章目录 EventTarget.addEventListener()的意义和原理 什么是事件监听 addEventListener()的原理 addEventListener()的语法 addEve ...
- js如何监听元素事件是否被移除_JS移除事件监听的方法 .removeEventListener( )
JS用addEventListener添加事件监听方法后,可以用removeEventListener来解除监听: element.removeEventListener(event, myFunct ...
- JavaScript 的addEventListener() 事件监听详解!
JavaScript 的addEventListener() 事件监听详解! addEventListener() 用于向指定元素添加事件. 可以向一个元素添加多次事件或者多次不同事件,后面的事件是 ...
- Event事件-1:addEventListener事件监听 / 事件冒泡事件捕获 / 事件委托 / preventDefault 阻止默认行为 / cancelBubble、stopPropa...
addEventListener 事件监听器 target.addEventListener(type, listener[, options|useCapture]) 添加事件监听 参数: ...
- js 监听 安卓事件_百行代码实现js事件监听实现跨页面数据传输
百行代码实现js事件监听实现跨页面数据传输 使用场景 类似消息队列的使用场景,支持同页面和跨页面通信,发送消息和接收消息 技术原理 跨页面通信: 基于事件监听,通过监听 storage事件监听回调机制 ...
最新文章
- IBM迎来新任CEO,又一美国科技巨头被印度裔掌舵
- 直播这把“火”,还能烧多久?
- Qt窗口屏幕居中显示 (ZT)
- android制作闪动的红心
- python Web 之基石 - - CGI 编程 (基于python3)
- 16年的大数据经验,为了搞定数字化转型,我和老板做了个赌注
- Linux sys_call_table变动检测
- 虚控件在GUI编程中的应用
- 四线温度探头怎么接线_热电阻的接线方式
- Java的数据结构和算法
- 数据分析师等级主要分为哪几个级别?
- 利用finalshell连接腾讯云服务器linux系统记录
- 落枫推荐:firefox插件firebug的8个最优秀扩展
- 大数据技术原理与应用 大作业--------微博精准营销案例设计与实现
- 《Delphi 4 开发大全》作者、Delphi研发团队开发工程师:史蒂夫·特谢拉(Steve Teixeira)访谈
- Vue element table按钮实现当行expand详情(右箭头)
- fastboot与fastbootd介绍
- RabbitMQ消息100%不丢失?
- 集成聚合火车票订票接口(回调推送方式)总结
- Unity C# 游戏客户端面试复习
热门文章
- 谷歌浏览器插件批量下载OMI数据方法
- 简单工厂+策略模式-上
- 哪些港口需要办理几内亚比绍CEE认证?
- 报错:‘xxxx‘ is declared but its value is never read.Vetur(6133)
- 前后端身份认证:session身份认证,JWT认证
- Java8 LocalDateTime常用方法
- 慕课软件工程(习题集)
- 如何提高团队协作效率?做好这几点协作更高效
- 单桢强数据库课程设计报告
- [c/c++]6. exec函数