`
小刘而已
  • 浏览: 2404 次
  • 性别: 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

    #IE-事件侦听器 这是IE8的基本填充程序,用于填充addEventListener和removeEventlistener函数

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

    最近在写一个事件代理的时候,遇到一个BUG,发现除此外,二者绑定的执行函数中的 this 是不相同的,addEventListener 和 attachEvent函数在运行时候的上下文是不相同的。 用了一个简单的demo来描述这个不同点: ...

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

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

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

    接受参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。 (3个) 最后这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。默认为false; 事件传递有两种...

    addEventListener()与removeEventListener()解析

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

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

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

    事件高级用法及兼容写法

    事件绑定兼容性问题:在低版本IE中(IE 6/7/8)不支持addEventListener和removeEventListener, 在低版本IE中可以使用: attachEvent(事件名,事件函数) 绑定事件 detachEvent 取消事件 注意:事件名 包含on前缀 两...

    动态的绑定事件addEventListener方法的使用

    本文为大家介绍下动态的绑定事件的方法addEventListener的使用示例,不了解的朋友可以参考下

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

    经常听到有人说,匿名函数绑定事件不好控制啊,无法解除绑定啊等等等等,一直很奇怪谁说的不能解除绑定。 下面来实现click事件2次后,自动解除绑定。 看代码: 代码如下: var dom=document.getElementById(“test”)...

    js点击图片预览及遮罩关闭.html

    通过 addEventListener 方法将 showPreview 函数绑定到每个需要预览的图片上,将 hidePreview 函数绑定到预览框中的关闭按钮上。 (可选)通过 addEventListener 方法将匿名函数绑定到窗口的 click 事件上,当用户...

    JavaScript实现跨浏览器的添加及删除事件绑定函数实例

    本文实例讲述了JavaScript实现跨浏览器的添加及删除事件绑定函数。分享给大家供大家参考。具体如下: IE 的事件绑定函数是 attachEvent;而 Firefox, Safari 是 addEventListener;Opera 则两种都支持。使用jQuery就...

    window.addEventListener来解决让一个js事件执行多个函数

    这时就要用window.attachEvent和window.addEventListener来解决一下。 下面是一个解决方法。至于attachEvent和addEventListener的用法,可以自己Google或百度一下。 代码如下: if (document.all){ window....

    原生js事件的添加和删除的封装

    在其他标准浏览器中则用addEventListener、removeEventListener。下面的对事件的添加和删除做了封装。直接看代码吧! /** * @description 事件绑定,兼容各浏览器 * @param target * 事件触发对象 * @param type *...

    事件绑定之小测试 onclick addEventListener

    开发工具中应该有相应的功能,于是测试之: 前提:只是一个简单的小测试,而且 addEventListener 属于标准绑定函数,IE 中与此不兼容(IE 相应的是 attachEvent),所以此次测试先抛弃 IE,使用 Firefox 5.0.1, ...

    事件绑定之小测试 onclick &amp;&amp; addEventListener

    昨晚回去后,和雷子讨论如何才能“检测”到页面上某个元素都绑定了哪些事件监听函数,第一感觉就是应该从浏览器入手,比如FF,或者Chrome等

    浅谈addEventListener和attachEvent的区别

    • addEventListener共有3个参数,如下所示: element....要绑定的事件监听函数,注意只写函数名,不要带括号。 userCapture 事件监听方式,只能是true和false:true,采用capture(捕获)模式;false,采

    详解javascript事件绑定使用方法

    由于html是从上至下加载的,通常我们如果在head部分引入javascript文件,那么我们都会在javascript的开头添加[removed]事件,防止在文档问加载完成时进行DOM...addEventListener(事件名称,函数, 捕获) removeEventListe

Global site tag (gtag.js) - Google Analytics