我在keydown事件上使用jQuery preventDefault:http://jsbin.com/ixaqok/edit#javascript,html 在Firefox和Opera中运行示例代码时,仍然会触发按键事件,但在Chrome,IE8和Safari中它不是。
为什么呢? 在所有浏览器中,preventDefault不应该工作相同吗?
谢谢!
答案 0 :(得分:7)
问题在于,与其他浏览器不同,Opera只允许您在keypress
事件中抑制键击的默认行为,而不是keydown
事件。因此,解决方案是使用keypress
事件。
有关详细信息,请使用我认为是浏览器关键事件的混乱的最终页面:http://unixpapa.com/js/key.html。禁止默认密钥行为的是第2.3节。
答案 1 :(得分:1)
Opera在识别和解析keydown(以及其他一些与键相关的函数)方面存在问题请参阅:
http://www.quirksmode.org/dom/events/keys.html
http://api.jquery.com/event.preventDefault/(在讨论中)