正文 1346字数 121,630阅读

本文章来给大家介绍在jquery使用bind绑定事件之后我们利用unbind进行删除绑定事件的方法举例,有需要了解的朋友可参考。

使用jquery的bind方法可以为一个对象的一个事件绑定绑定多个处理函数,甚至可以多次绑定一个方法,比如:
$(xxx).bind(‘click’, fun1).bind(‘click’, fun2).bind(‘click’, fun1);
Run code
Cut to clipboard


    而unbind用于删除绑定的方法,比如$(xxx).unbind(‘click’)

    ……

    但是,如果只想删除fun2哪?以前看得很多jquery里都没有关于这种操作的介绍,所以自然就一直以为只能整个的将click处理调,今天试了另外一种操作:$(xxx).unbind(‘click’, fun2),可以解除fun2的绑定

    住:$(xxx).unbind(‘click’, fun1),会将之前注册的两次fun1全部删除掉

    删除绑定事件

    1.移除所有p元素的绑定事件:
    $("p").unbind();
    Run code
    Cut to clipboard


      2.移除p元素绑定的click事件:
      $("p").unbind("click"); $("p").unbind("click",funName);
      Run code
      Cut to clipboard


        注意:unbind方法只适用于取消jquery绑定的事件,如果直接使用document.getElementById("btn").onclick=function{//code...}或<div onclick="alert('c')">test</div>,不能通过unbind方法取消(删除)。

        移除标签方法
        $("指定对象").remove();=>即可实现 $("#menuTree").unbind();//移除所有的绑定事件 $("#menuTree").attr("class","scroll org_tree white"); $("#menuTre ul").remove();//删除树
        Run code
        Cut to clipboard


          补充:

          在jQuery下使用 $(selector).unbind(‘hover’)无效,可以使用如下方法代替:
          $(selector).unbind(‘mouseenter’).unbind(‘mouseleave’); 或: $(selector).unbind(‘mouseenter mouseleave’);
          Run code
          Cut to clipboard


            可以发现hover事件是由mouseenter和mouseleave组成,以区别mouseover和mouseout。
            在unbind它的这两个事件后,不会对mouseover和mouseout事件造成影响。