當頁面初始加載,我有以下click
事件設置(正常工作):綁定客戶端事件到不同的功能
$('#thisIsTheElement').click(function() {
firstFunction();
});
在以後某個時候(發生的東西后)我想改變這點擊指向不同的功能稱爲
secondFunction();
什麼是最有效的方法來做到這一點?
我應該解除綁定嗎?這可以在一行中完成嗎?
當頁面初始加載,我有以下click
事件設置(正常工作):綁定客戶端事件到不同的功能
$('#thisIsTheElement').click(function() {
firstFunction();
});
在以後某個時候(發生的東西后)我想改變這點擊指向不同的功能稱爲
secondFunction();
什麼是最有效的方法來做到這一點?
我應該解除綁定嗎?這可以在一行中完成嗎?
一個可能的解決方案是使用一個標誌來跟蹤something
是否發生
var somethingOccurred = false;
$('#thisIsTheElement').click(function() {
if(somethingOccurred){
secondFunction();
} else {
firstFunction();
}
});
//when something occurs
somethingOccurred = true
另一種選擇可能是這樣的:
$('#thisIsTheElement').on('click', firstFunction);
及更高版本:
$('#thisIsTheElement').off('click', firstFunction).on('click', secondFunction);
.one() documentation。
此代碼將在兩個函數之間切換。
function firstFunction() {
alert('First handler: ' + $(this).text());
$(this).one("click", secondFunction);
}
function secondFunction() {
alert('Second handler: ' + $(this).text());
$(this).one("click", firstFunction);
}
$("div").one("click", firstFunction);
這個代碼將運行firstFunction
一次,下一次以後的secondFunction
function firstFunction() {
alert('First handler: ' + $(this).text());
$(this).on("click", secondFunction);
}
function secondFunction() {
alert('Second handler: ' + $(this).text());
}
$("div").one("click", firstFunction);