javascript preventdefault杀死按键

时间:2011-12-24 00:12:59

标签: javascript events addeventlistener preventdefault

在osx 10.6.8上使用chrome 15

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

Take a look here

取消对该行event.preventDefault();的注释,您会看到按键事件停止工作。这是什么交易?

1 个答案:

答案 0 :(得分:8)

preventDefault()完全符合预期。它会停止键的默认操作。如果您想要密钥的默认操作,请不要调用它。

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

如果你更多地描述你想要完成的事情,那将有助于我们知道在它的位置提出什么建议。

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