最近工作中在页面需要用到addEventListener
document.addEventListener('touchmove', function(e) { e.preventDefault(); }, false);
但是有另外一个需求是需要将以上的'touchmove'恢复为默认的。开始我直接使用removeEventListener,但是不起作用。后来发现如果要让removeEventListener成功的话需要把里面function单独封装成一个方法。
function preventDefault(e) { e.preventDefault(); };
document.addEventListener('touchmove', preventDefault, false);
document.removeEventListener('touchmove', preventDefault, false);
把操作封装成一个单独的方法,调用时引用同一个方法,listener才能准确找到。如果直接写在参数里,会认为是两个function(e)是不同的操作,所以不能remove成功。
分享到:
相关推荐
许多入前端不久的人都会遇到 removeEventListener 无法清除监听的情况,这是由于 要移除事件句柄,addEventListener() 的执行函数必须使用外部函数,如上实例所示 (myFunction)。 匿名函数,类似 “document....
然而,当我们想要移除特定的事件处理程序时,必须使用`removeEventListener()`,并确保传递相同的参数: ```javascript btn.removeEventListener("click", function () { alert(this.id); }, false); ``` 这里的...
重要的是,如果当初添加事件监听器时使用的是匿名函数,由于JavaScript函数对象的特性,无法通过 `removeEventListener()` 移除,因为每次创建匿名函数都会生成一个新的函数对象,它们在内存中的地址不同。...
`addEventListener` 和 `removeEventListener` 是两个在现代浏览器中广泛使用的DOM(文档对象模型)API,它们允许我们向元素添加或移除事件处理函数,实现事件驱动的编程模式。然而,这些方法在Internet Explorer 8...
addEventListener()与removeEventListener()用于追加事件和删除追加。所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。 最后这个布尔值参数是true,...
3. 避免直接修改事件监听器,而是使用addEventListener和removeEventListener方法。 四、安全的AJAX通信 使用XMLHttpRequest或fetch进行异步请求时,注意以下几点: 1. 使用同源策略或者CORS(跨源资源共享)来控制...
这个名为"一个简单的EventEmitter可在浏览器中使用帮助你实现事件的订阅和发布"的项目,就是为了解决这个问题,让开发者能够在浏览器端轻松地利用事件机制。 首先,让我们理解什么是`EventEmitter`。`EventEmitter`...
正确的做法是将debounce包装的函数引用保存在methods里,并在window的addEventListener和removeEventListener中使用相同的引用。 ```javascript methods: { resize() { this.radarChart.resize() }, ...
使用鼠标绘制canvase图形 function mousedownHandler (event){ if(event.button == 0 && !flag) { points.push({ x: event.pageX - cvsClientRect.x, y: event.pageY - cvsClientRect.y }); console.log...
* 使用 removeEventListener() 方法移除事件 * 事件冒泡是将事件层层传递,而捕获是从外向内传递事件 十、定时器: * 使用 setTimeout() 方法创建延迟执行的定时器 * 使用 setInterval() 方法创建循环执行的定时器...
因此,我们更倾向于使用JavaScript进行动态事件绑定,这通常涉及两种方法:`addEventListener`和`removeEventListener`。 `addEventListener`是W3C标准的方法,用于向元素添加事件监听器。它接受两个参数:要监听的...
在讨论如何使用JavaScript来创建一个跨浏览器的事件处理机制时,我们首先需要了解不同浏览器之间在事件处理方面的差异性,以及为了兼容这些差异,开发者们采取了哪些策略。以下是从给出的文件内容中提取出来的相关...
2.移除事件监听器【分析说明】与添加事件类似,移除事件监听器时 IE 使用 `detachEvent`,而标准浏览器使用 `removeEventListener`。 ```javascript // IE element.detachEvent('onclick', function() { /*...*/ })...
为避免这类内存泄漏,开发者应适时解除DOM节点和JavaScript对象之间的引用,如使用`removeEventListener`取消事件监听,或让JavaScript对象引用变为null。 2. 图片元素的内存占用及回收 图片元素,如标签,会加载...
5. **事件处理**:DOM操作和事件监听是前端开发中的常见任务,熟悉`addEventListener`和`removeEventListener`等API可以提高用户交互体验。 6. **异步编程**:了解回调函数、Promise、async/await等异步处理方法,...
事件处理可以使用`addEventListener`和`removeEventListener`方法添加和移除事件处理器。 六、AJAX与Fetch AJAX(异步JavaScript和XML)允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。现代...
本文将详细介绍在Vue项目中如何实现和使用防抖与节流。 ### 1. 防抖(debounce) 防抖技术的主要目的是避免频繁调用某个函数,例如在输入框输入时防止连续触发事件处理函数。当一个函数被频繁调用时,防抖会确保在...