當從一個不同的元素觸發另一個事件時,我在將一個事件綁定到一個元素時遇到了很多麻煩。 我的HTML是一個文本框,當添加一些文本時,它會創建一個含有暗示的上下文菜單。由於這個菜單是一個動態創建的表,我想將一個click事件綁定到它的元素。所以,這是我的代碼:jQuery - 一次綁定一個事件
$("#TextBox").on("keypress", function(e) {
$("#Menu").find("td").on("click", function(event) {
event.stopPropagation();
event.preventDefault();
processText(event, $(this).children().text());
});
$(this).off(e);
});
但是,我不知道爲什麼,它不起作用。另外,我已經嘗試創建一個變量並將其用作標誌,但也不起作用。
如果我只是不解除綁定它,觸發點擊事件多次,因爲用戶按下一個鍵。但是我想解除它,所以它只執行一次。
編輯:錯誤是我正在處理不正確的事件。我不得不處理「keyup」,因爲在「keypress」中表格仍然不存在。
你連接上每個按鍵各'td'一個新的'click'事件(不刪除舊的)...這是* *幾乎肯定不是你想要的。您應該只需要在「keypress」處理程序之外綁定一次。 – Matt