Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
224 views
in Technique[技术] by (71.8m points)

js取消事件綁定

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

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

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

    $(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. 如果把绑定时传递的处理函数作为第二个参数,则只针对该函数移除。

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...