在jQuery開(kāi)發(fā)過(guò)程中,我們經(jīng)常需要綁定事件來(lái)處理用戶的交互動(dòng)作。使用click()
方法可以很方便的實(shí)現(xiàn)點(diǎn)擊事件的綁定。但是,有時(shí)候我們需要解綁之前綁定的點(diǎn)擊事件,此時(shí)可以使用unbind()
方法或off()
方法進(jìn)行解綁。
如果我們只是想解綁之前綁定的某一特定點(diǎn)擊事件處理函數(shù),可以使用unbind()
方法。該方法接收一個(gè)參數(shù),即要解綁的事件處理函數(shù)。例如:
$(selector).unbind('click', eventHandler);
其中selector
是要解綁的元素選擇器,click
是要解綁的事件類型,eventHandler
是要解綁的事件處理函數(shù)。
如果我們想解綁所有綁定在該元素上的點(diǎn)擊事件,可以使用unbind()
方法不傳參數(shù):
$(selector).unbind();
但是unbind()
方法只能解綁綁定在元素上的事件處理函數(shù),無(wú)法解綁由delegate()
或on()
方法綁定的事件。這時(shí)可以使用off()
方法進(jìn)行解綁。
在使用off()
方法解綁事件時(shí),我們需要傳入至少一個(gè)參數(shù),即要解綁的事件類型。例如:
$(selector).off('click');
表示解綁該元素上所有的click
事件。如果我們只是想解綁某一特定事件處理函數(shù),可以再傳入第二個(gè)參數(shù),即要解綁的事件處理函數(shù)。例如:
$(selector).off('click', eventHandler);
同樣,off()
方法也可以解綁由delegate()
或on()
方法綁定的事件。如果我們使用on()
方法綁定事件,建議使用off()
方法進(jìn)行解綁,因?yàn)?code>unbind()方法在jQuery 1.7版本之后,已經(jīng)被移除了。