当从一个不同的元素触发另一个事件时,我在将一个事件绑定到一个元素时遇到了很多麻烦。 我的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