在OSX 10.6.8上使用Chrome 15

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

Take a look here

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

最佳答案

preventDefault()完全可以实现预期的功能。它将停止键的默认操作。如果您想要按键的默认操作,请不要调用它。

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

如果您对自己要完成的工作有更多的描述,这将有助于我们知道在该地方建议什么。

在jsFiddle中,您正在听文档级别的键。到击键传播到文档时,它们已经由它们所针对的单个对象进行了处理。如果要拦截并阻止键的处理,则必须在事件处理程序中对其最初针对的对象进行处理。您不能阻止文档级别上键的默认设置。在this jsFiddle中,我拦截了它们进入的第一个对象的击键,可以看到它们被完全阻止了。您可能还需要注意,跨浏览器的行为在这方面并不完美,因为您可以看到here在浏览器方面存在一些差异。

关于javascript - javascript preventdefault会杀死按键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8621759/

10-12 16:06