`
小刘而已
  • 浏览: 2440 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

addEventListener和removeEventListener绑定有名函数和无名函数的区别

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta http-equiv="Cache-Control" content="no-cache" />
        <meta http-equiv="Pragma" content="no-cache" />
        <meta http-equiv="Expires" content="0" />
        <script type="text/javascript">
            Obj = {
                al: function(){
                    alert("aaaa");
                }
            }
            function add(){
            
                var btn = document.getElementById("aaa");
                //btn.removeEventListener("click", Obj.al, false);
                btn.addEventListener("click", Obj.al, false);
            }
            
            function addAnmonys(){
                var btn = document.getElementById("aaa");
                btn.addEventListener("click", function(){
                    alert("aaaa");
                }, false);
            }
            
            function remove(){
                var btn = document.getElementById("aaa");
                btn.removeEventListener("click", Obj.al, false);
            }
        </script>
        <title>New Web Project</title>
    </head>
    <body>
        <input type="button" value="aaaaaa" id="aaa" />
        <br/><br/>
        <input type="button" value="执行一次add" onclick="add()"/>
        <br/><br/>
        <input type="button" value="执行一次addAnmonys" onclick="addAnmonys()"/>
        <br/><br/>
        <input type="button" value="执行一次remove" onclick="remove()"/>
    </body>  
</html>

 当使用addEventListener绑定一个有名的监听函数时,不会被重复绑定(多次绑定也只会绑定一次),也可以去绑定。

 

使用匿名函数时,监听函数会被多次重复绑定,也无法去绑定。

0
0
分享到:
评论

相关推荐

    ie8-eventlisteners:IE8的Polyfill,用于addEventlistener和removeEventListener

    `addEventListener` 和 `removeEventListener` 是两个在现代浏览器中广泛使用的DOM(文档对象模型)API,它们允许我们向元素添加或移除事件处理函数,实现事件驱动的编程模式。然而,这些方法在Internet Explorer 8...

    JavaScript绑定大事监听函数的通用方法_.docx

    W3C 绑定方法是使用 addEventListener() 函数来绑定事件监听函数,这是一种更加标准化的绑定方法。 在选择绑定方法时,开发者需要考虑多个因素,例如浏览器兼容性、代码质量和开发效率。不同的绑定方法都有其优缺,...

    addEventListener()和removeEventListener()追加事件和删除追加事件

    所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。 最后这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用...

    addEventListener和attachEvent二者绑定的执行函数中的this不相同

    1. **`addEventListener`**: 当使用`addEventListener`添加事件监听器时,事件处理函数内的`this`会自动绑定到触发事件的元素。在提供的示例中,无论是点击`test1`还是`test2`,在Firefox和Chrome下,`this`始终指向...

    js中addEventListener()与removeEventListener()用法案例分析

    移除事件监听器时,需要提供相同的参数:事件名、原始的事件处理函数和捕获标志。重要的是,如果当初添加事件监听器时使用的是匿名函数,由于JavaScript函数对象的特性,无法通过 `removeEventListener()` 移除,...

    javascrpt绑定事件之匿名函数无法解除绑定问题.docx

    然而,在实践中,有时候我们会遇到一些挑战,比如如何有效地绑定和解除匿名函数作为事件处理器的问题。 #### 匿名函数绑定事件的挑战 匿名函数因其简洁性而在事件绑定中被广泛使用,但同时也带来了一些问题。最典型...

    解决removeEventListener 无法清除监听的问题

    要移除事件句柄,addEventListener() 的执行函数必须使用外部函数,如上实例所示 (myFunction)。 匿名函数,类似 “document.removeEventListener(“event”, function(){ myScript });” 该事件是无法移除的。 而在...

    前端大厂最新面试题-event_Model.docx

    addEventListener 方法用于绑定事件监听函数,参数包括 eventType、handler 和 useCapture。eventType 指定事件类型,handler 是事件处理函数,useCapture 是一个布尔值,用于指定是否在捕获阶段进行处理。 ...

    addEventListener()与removeEventListener()解析

    在这个修复后的示例中,`handler`函数在`addEventListener()`和`removeEventListener()`中保持一致,因此能够正确地移除事件处理程序。 总结来说,`addEventListener()`和`removeEventListener()`是JavaScript事件...

    函数之间调用同一个对象方法

    在例子中,`球`对象被赋予了一个帧事件监听器,这意味着每当游戏引擎处理一帧时,都会触发绑定的函数(即`函数2`)。事件监听器通过`addEventListener`方法添加到对象上,而当不再需要时,可以通过`...

    javascript常用函数集合

    9. **事件处理**:JavaScript常用于处理用户与网页的交互,如`addEventListener`用于绑定事件监听器,`removeEventListener`用于解除绑定。 10. **DOM操作**:Document Object Model(DOM)允许JavaScript操作HTML...

    javascript 触发HTML元素绑定的函数

    - **动态绑定**:通过 JavaScript 为元素添加事件监听器,如 `element.addEventListener('click', function)` ##### 2. **触发事件的方法** 根据浏览器的不同,JavaScript 触发 HTML 元素绑定的函数有多种方法: ...

    javascript中的绑定与解绑函数应用示例.docx

    本文将详细介绍如何在不同的浏览器环境中(主要是 Mozilla 和 Internet Explorer)使用绑定与解绑函数,并通过实际代码示例进行演示。 #### 二、事件绑定 ##### 2.1 `addEventListener` 方法 (W3C 标准) **语法**...

    常用的JS 特效 函数

    1. 事件绑定:`addEventListener`和`removeEventListener`用于添加和移除事件监听器。 2. 事件对象:事件触发时,会返回一个事件对象,如`event.target`表示触发事件的元素,`event.preventDefault`阻止默认行为,`...

    javascript 所有函数 代码+目录

    还有事件处理函数,如`addEventListener`和`removeEventListener`,用于绑定和解绑事件监听器。 在异步编程中,JavaScript提供了`setTimeout`和`setInterval`函数进行定时任务,以及`Promise`、`async/await`等用于...

    JavaScript 事件绑定及深入

    现代事件绑定遵循W3C的DOM2级事件规范,它定义了`addEventListener`和`removeEventListener`两个方法,用于添加和删除事件处理程序。这种方式更加强大灵活,不会覆盖之前的事件处理函数,允许多个函数在同一个事件上...

    VC++回调函数使用

    在编程领域,回调函数是一种设计模式,它允许我们传递一个函数作为另一个函数的参数,以便在特定事件发生或特定操作完成后执行。在VC++(Microsoft Visual C++)中,回调函数是一个重要的特性,尤其在处理异步操作、...

Global site tag (gtag.js) - Google Analytics