jQuery:unbind方法的使用詳解
一、前言
unbind方法只能解綁用jQuery的bind方法以及用jquery方法注冊(cè)的事件處理程序。比如:$(‘a(chǎn)').click(function(){})可以通過(guò)unbind解綁。用原生addEventListener以及IE下的attachEvent注冊(cè)的事件以及使用onclick/onmouseover屬性綁定的事件不能通過(guò)unbind進(jìn)行解綁。
例如:
以下的事件可以通過(guò)unbind解綁:
$('a').click(function(){}); $('a').bind('click',function(){})
以下的事件不可以通過(guò)unbind解綁
var a = document.getElementById('a'); a.addEventListener(a,function(){},false); a.onclick = function(){}
二、使用方式:
傳入一個(gè)或者多個(gè)事件名稱(chēng)字符串,可以解綁該元素上指定的處理事件。
例如:
//解綁所有a上的click事件 $('a').unbind('click'); //解綁a上的所有mouseover以及mouseoverout事件 $('a').unbind('mouseover mouseout');
以上方式比較粗暴,如果在多模塊開(kāi)發(fā)中,可能會(huì)直接把別的模塊注冊(cè)的處理函數(shù)給解綁了。所以可以采用命名空間的方式進(jìn)行解綁。
例如:
$('a').unbind('click.myspace') $('a').unbind('mouseover.myspace,mouseout.myspace)
使用事件處理程序的引用進(jìn)行解綁。此時(shí)第一個(gè)參數(shù)是事件名稱(chēng),第二個(gè)參數(shù)是事件處理函數(shù)名稱(chēng)
function handler(){ alert('hello'); } $('a').bind('click',handler); $('a').unbind('click',handler);
傳入一個(gè)對(duì)象給unbind,取消該對(duì)象的所有key的名稱(chēng)對(duì)應(yīng)的事件,value是綁定的事件處理函數(shù)名稱(chēng)。如下:
$('a').unbind({ mouseover: mouseoverHandler, mouseout: mouseoutHandler });
傳入一個(gè)jQuery Event對(duì)象給unbind,也可以解綁該event對(duì)應(yīng)的處理函數(shù)。例如:
$('a').click(function(event){ if(條件滿足){ $('a').unbind(event); } });
注意:調(diào)用unbind(event)方法就相當(dāng)于調(diào)用unbind(事件類(lèi)型,事件處理函數(shù)名稱(chēng))
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com