javascript - js取消事件綁定
黄舟
黄舟 2017-05-19 10:42:35
[JavaScript讨论组]

给一个元素使用addEvent多次绑定了点击事件,有什么办法可以一下取消所有绑定的事件吗

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
为情所困

removeevent

ringa_lee

不可以,只能一个一个的移除绑定,DOM2级的是removeEventListener,IE中的是attachEvent
匿名函数是不可以被解绑的,所以只能解除具名函数。

JQuery中有一种方法可以一下移除所有事件处理函数:

    <input type="button" id="btn" value="Click Me!" name="">
    <input type="button" value="删除所有事件" id="delAll" name="">
    <p id="test">
        
    </p>

    $(function(){
        $("#btn").bind("click",function(){
            $("#test").append("<p>我的绑定函数1</p>");
        }).bind("click",function(){
            $("#test").append("<p>我的绑定函数2</p>");
        }).bind("click",function(){
            $("#test").append("<p>我的绑定函数3</p>");
        });
        $("#delAll").bind("click",function(){
            $("#btn").unbind("click");
        })
    })

在JQ中,unbind可以用于解除所有的绑定:

  1. 如果没有参数,删除所有绑定的事件。

  2. 如果提供了事件类型,那么只删除该类型的绑定事件。

  3. 如果把绑定时传递的处理函数作为第二个参数,则只针对该函数移除。

==========================================================
暂时就只想到这个方法啦,希望对你有帮助!

世界只因有你

element.addEventListener("mouseover", myFunction); 绑定事件

element.removeEventListener("mousemove", myFunction); 移除绑定事件

跨浏览器兼容解决方案

var x = document.getElementById("myBtn");
if (x.addEventListener) { // 所有主流浏览器,除了 IE 8 及更早版本

x.addEventListener("click", myFunction);

} else if (x.attachEvent) { // IE 8 及更早版本

x.attachEvent("onclick", myFunction);

}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号