javascript阻止默认设置杀死按键

javascript阻止默认设置杀死按键,javascript,events,addeventlistener,preventdefault,Javascript,Events,Addeventlistener,Preventdefault,在osx 10.6.8上使用chrome 15 在添加事件监听器时,我发现在使用keypress事件时将preventDefault放入,会出现mas问题 使用event.preventDefault()取消对行的注释在上面,您将看到按键事件停止工作。这是怎么回事?preventDefault()做的正是它应该做的。它停止键的默认操作。如果您想要键的默认操作,那么不要调用它 在Chrome和Firefox中,我都会看到重复的按键,即使preventDefault()从您的小提琴上取消了注释。也

在osx 10.6.8上使用chrome 15

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

使用
event.preventDefault()取消对行的注释在上面,您将看到按键事件停止工作。这是怎么回事?

preventDefault()
做的正是它应该做的。它停止键的默认操作。如果您想要键的默认操作,那么不要调用它

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

如果你能更多地描述你想要完成的事情,这将有助于我们知道在这个地方应该建议什么


在JSFIDLE中,您在文档级别监听键。当击键传播到文档时,它们已经被目标对象处理过了。如果要拦截并阻止密钥被处理,则必须在事件处理程序中对它们最初针对的对象进行处理。不能从文档级别阻止默认键。在我截取第一个对象上的击键时,可以看到它们被完全阻止。您可能还想知道,跨浏览器行为在这方面并不完美,因为您可以看到浏览器之间存在一些差异。

那么,为什么
preventDefault()
只阻止
keypress
的默认行为,而不是
keydown
keyup
?我只想知道为什么只有
keypress
才会生效。@Jackson-参见我在答案中添加的最后一段。在文档级别处理键时,不能阻止默认设置。默认情况在那一点上已经发生了。我不知道为什么我在第一次阅读时没有理解你的观点。我道歉。另一方面,谢谢你的耐心和智慧!