在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/