平時互广,我們總會有需要讓某個點擊事件失效的情況哑姚,在實習中我就遇到了這個問題:點擊一個按鈕以后觸發(fā)動畫倦青,在觸發(fā)動畫的那段時間里瓮床,需要把該按鈕的點擊事件取消,接下來就介紹一下jQuery如何解除綁定的點擊事件产镐。
要解綁點擊事件隘庄,那么首先就要了解一下如何綁定點擊事件,當然癣亚,可以使用jQuery的click
方法為元素綁定點擊事件:
$('#test').click(function () {
console.log('1');
});
也可以用jQuery的bind
方法來實現(xiàn)點擊事件的綁定:
$('#test').bind('click', hello);
function hello() {
console.log('hello');
}
接下來介紹一下解除事件綁定的方法unbind
丑掺,這個方法的語法是:
$(selector).unbind(event,function);
- event:可選參數(shù)。規(guī)定刪除元素的一個或多個事件由空格分隔多個事件值述雾。
- function:可選參數(shù)街州。規(guī)定從元素的指定事件取消綁定的函數(shù)名。
我們想要解除綁定的點擊事件玻孟,可以這么寫:
$('#test').unbind('click');
當然唆缴, 這樣會使該元素所有的點擊事件都失效,如果只想讓綁定的某個點擊事件失效黍翎,可以這么寫:
$('#test').unbind('click',hello);
當然面徽,如果這個元素只綁定了一個點擊事件,可以簡單地這么寫:
$('#test').unbind();
把兩個參數(shù)都省略匣掸,這樣子斗忌,會把該元素所有綁定的事件都解綁,不僅僅是點擊事件了旺聚。
需要注意的是织阳,unbind
方法中參數(shù)只能是函數(shù)名,而不能是匿名函數(shù)砰粹,比如那么寫:
$('#test').unbind('click', function () {//無效
console.log('1');
});
這樣就無法解綁了唧躲,即使綁定的函數(shù)和解綁的函數(shù)的兩個匿名函數(shù)一樣造挽,這是因為函數(shù)是引用類型∨裕總之unbind
方法的參數(shù)要填函數(shù)方法名不要填匿名函數(shù)饭入。