無法按照您描述的方式暫停功能。你有沒有想過這樣做呢?也就是說,當用戶點擊一個單元格時,可以用某種方式突出顯示它,然後添加和刪除按鈕/功能將應用於當前突出顯示的單元格。
或者,您可以添加或刪除「預處理」,然後設置某種標誌以表明您正在等待輸入,然後爲單元格單擊事件設置事件處理程序,以檢查該標誌以決定什麼處理接下來。所以,假設你已經設置你的添加和刪除事件處理程序調用add()
和delete()
,並設置表格單元格單擊處理程序調用cellClick()
,你可以嘗試這樣的事:
var clickCallback = null;
function add() {
// do your preprocessing here
clickCallback = function(clickedCell) {
// do further processing here
};
}
function delete() {
// do your delete preprocessing here
clickCallback = function(clickedCell) {
// do further processing here
};
}
function cellClick(e) {
e = e || window.event;
var clickedElement = e.srcElement || e.target;
if (clickCallback != null) {
clickCallback(clickedElement);
clickCallback = null;
}
}
處理後,單擊回調設置回null,以便多次點擊不做任何事情。很明顯,如果用戶採取的其他操作應該取消處理的其餘部分,那麼只需將回調設置爲null即可。
注意,通過直接定義add()
和delete()
函數中的回調,他們(回調),將有機會獲得的add()
和delete()
局部變量,即使回調直到後來執行(閉包的魔法)。
你想從用戶那裏獲得輸入嗎?提示可能會這樣做,它會提示用戶並等待用戶提供答案。 –
「隊列」的狀態改變數據,所以'currentValueToAdd =「A」;'然後讀取並在點擊處理程序中採取行動? –
[Javascript - 繼續前等待事件]的可能重複(http://stackoverflow.com/questions/963507/javascript-waiting-for-event-before-proceeding) – JJJ