jquery unbind

jquery unbind

一、语法

$(selector).unbind(event,function)

event:可选。规定删除元素的一个或多个事件,由空格分隔多个事件值。如果只规定了该参数,则会删除绑定到指定事件的所有函数。

function:可选。规定从元素的指定事件取消绑定的函数名。

unbind()函数的参数全是筛选条件,只有匹配所有参数条件的事件处理函数都将被移除。参数越多,限定条件就越多,被移除的范围就越小。

二、jquery unbind实例

  •  
  • HTML 代码   复制
  • 
    <input id="btn1" type="button" value="点击1" />
    <input id="btn2" type="button" value="点击2" />
    <a id="a1" href="#">CodePlayer</a>
    
    <script>
    
    function btnClick1(){
        alert( this.value + "-1" );
    }
    
    function btnClick2(){
        alert( this.value + "-2" );
    }
    
    var $buttons = $(":button");
    
    // 为所有button元素的click事件绑定事件处理函数btnClick1
    $buttons.bind( "click", btnClick1 );
    
    // 为所有button元素的click事件绑定事件处理函数btnClick2
    $buttons.bind( "click", btnClick2 );
    
    // 为所有a元素的click、mouseover、mouseleave事件绑定事件处理函数
    $("a").bind( "click mouseover mouseleave", function(event){
        if( event.type == "click" ){
            alert("点击事件");
        }else if( event.type == "mouseover" ){
            $(this).css("color", "red");
        }else{
            $(this).css("color", "blue");       
        }
    });
    
    
    // 移除为所有button元素的click事件绑定的事件处理函数btnClick2
    // 点击按钮,只执行btnClick1
    $buttons.unbind("click", btnClick2);
    
    
    // 移除为所有button元素的click事件绑定的所有事件处理函数(btnClick1和btnClick2)
    // 点击按钮,不会执行任何事件处理函数
    // $buttons.unbind("click");
    
    
    // 只移除为btn1元素的click事件绑定的所有事件处理函数
     // btn2元素的click事件仍然有效
    // $("#btn1").unbind("click");
    
    // 移除为所有a元素的任何事件绑定的所有处理函数
    // 点击链接,或用鼠标在链接上移入、移出,都不会触发执行任何事件处理函数
    // $("a").unbind( );
    
    </script>
    
    		
  •  三、jquery unbind注意事项

    1、移除所有p元素的绑定事件

    $("p").unbind();

    2、移除p元素绑定的click事件

    $("p").unbind("click");

    $("p").unbind("click",funName);

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

    4、jQuery下使用 $(selector).unbind('hover')无效,可以使用如下方法代替

  • 
    $(selector).unbind(‘mouseenter’).unbind(‘mouseleave’);
    //或:
    $(selector).unbind(‘mouseenter mouseleave’);
    
    		
  • 标签: