jQuery.one()附加多个事件处理程序可能是个坏主意吗?

jQuery.one()附加多个事件处理程序可能是个坏主意吗?,jquery,event-handling,onkeydown,onkeypress,Jquery,Event Handling,Onkeydown,Onkeypress,表单上有一个字符,当我单击它以使其成为焦点并开始键入时,我输入的第一个字符将被忽略。输入从第二个开始填充 页面中一定有东西正在使用第一个字符。我怎样才能找到那是什么 即使我在键入前多次单击输入,第一个字符也会发出咕噜声 在这种情况下,我所知道的唯一特点是: 事先有一份报告覆盖了整页。这个 覆盖显示:无;点击一下。我试过了 使用devTools删除div,以防它仍在拦截内容,但问题仍然存在 表单的tabindex属性已使用jQuery指令进行操作 我已经验证了Chrome37、IE11和FF32中

表单上有一个字符,当我单击它以使其成为焦点并开始键入时,我输入的第一个字符将被忽略。输入从第二个开始填充

页面中一定有东西正在使用第一个字符。我怎样才能找到那是什么

即使我在键入前多次单击输入,第一个字符也会发出咕噜声

在这种情况下,我所知道的唯一特点是:

事先有一份报告覆盖了整页。这个 覆盖显示:无;点击一下。我试过了 使用devTools删除div,以防它仍在拦截内容,但问题仍然存在 表单的tabindex属性已使用jQuery指令进行操作
我已经验证了Chrome37、IE11和FF32中的问题。

好的,我发现了错误。让我们把答案放在这里,并更改问题标题,因为它很有趣

第十次检查别人的代码显然。。。我观察到事件处理程序连接的特殊方式:

$(document).one("keydown mousedown touchstart", function(ev) {
  ev.preventDefault();
  self.hideOverlayDiv();
})
使用$.one,可能是为了避免在运行后显式删除事件处理程序

问题是:在使用mousedown事件处理程序之后,还有两个事件处理程序准备在keydown和touchstart事件上运行。当我开始填充输入时,onkeydown家伙会咕噜咕噜地说出我的第一个字符

我改变了这件事:

$(document).on("keydown mousedown touchstart", function(ev) {
  ev.preventDefault();
  self.hidePopupError();
  $(document).off("keydown mousedown touchstart");
})

您可以创建一个演示,例如JSFIDLE吗?在没有看到或体验的情况下,不可能知道是什么影响了代码。涉及的代码太多了。我担心我的公司不允许我这么做。此问题旨在收集有关如何处理页面中未知事件处理程序的问题的想法。