我不能爲我的生活指出爲什麼這些功能正在執行。我理解用於綁定函數的正確語法如下。這個點擊功能即使用適當的回調也能執行
$('#idOfThing').bind('click', foofunc);
function foofunc() { ///do things }
但是,我的代碼正在進行中。這些綁定/解除綁定中的任何一個都起作用,或者其他綁定/解綁定不起作用。我嘗試過所有我能想到的組合。
$(window).on("load", function() {
$('#divContactSticky').addClass("bottomDiv");
$('#divContactSticky').bind('click', FillScreen);
});
var FillScreen = function() {
$('#divContactSticky').unbind("click", FillScreen);
$('#divContactSticky').css('height', '90vh');
};
function CancelForm() {
$('#divContactSticky').css('height', '77px');
$('#divContactSticky').bind('click', function() {
FillScreen();
});
}
這個問題的關鍵在於將div固定在窗口的底部。當用戶點擊該div時。 ViewPort將填滿div。在這個div裏面有一個取消按鈕。它是html,並且CancelForm()將在點擊時執行。顯然,一旦格被點擊時,我不得不取消綁定功能,或FillScreen
都會在每一個表單輸入執行點擊等
我試圖使CancelForm() bind
功能一樣load
回調類型。我已經嘗試了一切。我已將FillScreen
=設爲匿名功能。我已經嘗試了幾乎所有我能想到的返回類型的組合。我哪裏錯了?
編輯:
CancelForm已經收到了改造,並且問題仍然存在。如下所示的CancelForm立即執行FillScreen。
function CancelForm() {
$('#divContactSticky').css('height', '77px');
$('#divContactSticky').bind('click', FillScreen);
}
**編輯2:**
@Radicate有部分正確的答案。綁定和開/關之間有一個主要區別。下面的代碼是最終工作的。
$(document).ready(function() {
$('.cancelb').click(function() {
CancelForm();
});
$('#divContactSticky').click(FillScreen);
}
$(window).on("load", function() {
$('#divContactSticky').addClass("bottomDiv");
$('#divContactSticky').on('click', FillScreen);
});
var FillScreen = function() {
$('#divContactSticky').off("click", FillScreen);
$('#divContactSticky').css('height', '90vh');
};
function CancelForm() {
$('#divContactSticky').css('height', '77px');
$('#divContactSticky').on('click', FillScreen);
event.stopPropagation()
});
}
我會代替開始'綁定/ unbind'用'上/ off'。 「從jQuery 1.7開始,.on()和.off()方法更適合附加和移除元素上的事件處理程序。」你可能想嘗試'關閉/解除綁定('click')',以確保你沒有語法問題。 – dlsso