2

在 osx 10.6.8 上使用 chrome 15

添加事件侦听器时,我发现preventDefault在使用keypress事件时放入,我会遇到问题。

看看这里

取消注释该行,event.preventDefault();您将看到 keypress 事件停止工作。这是怎么回事?

4

1 回答 1

8

preventDefault()完全按照它应该做的。它停止键的默认操作。如果您想要该键的默认操作,请不要调用它。

在 Chrome 和 Firefox 中,我看到重复的按键,即使preventDefault()你的小提琴没有注释。也许你正在失去焦点。

如果您更多地描述您要完成的工作,它将帮助我们知道在它的位置提出什么建议。

在您的 jsFiddle 中,您正在收听文档级别的键。当击键传播到文档时,它们已经被它们所针对的单个对象处理。如果要拦截和阻止处理键,则必须在事件处理程序中对它们最初针对的对象进行处理。您不能从文档级别阻止默认键。在这个 jsFiddle中,我截获了他们去的第一个对象上的击键,你可以看到它们完全被阻止了。您可能还想知道,跨浏览器行为在这方面并不完美,因为您可以在此处看到一些浏览器差异。

于 2011-12-24T00:16:56.403 回答