Opera中的jQuery keyup事件麻烦

时间:2012-06-25 11:43:22

标签: jquery events google-chrome cross-browser opera

我在我的网站上使用了一些热键,网站仅在Chrome和Firefox中进行了测试,一切都没问题,但是当我在Opera中测试网站时发现我的很多热键都没有用,代码检查后发现我的功能

$(document).bind('keyup', function(e){
  //....
}); 
当我尝试将其更改为

时,Opera会忽略

$(document).bind('keypress', function(e){
  //....
});

它在Opera中正常运行,但被Chrome忽略。有没有跨浏览器的出路?我也在使用jquery 1.5.1。

function(e)更改为function (event)后,

更新。仅显示为arrown和esc。按钮仍无法正常工作

2 个答案:

答案 0 :(得分:0)

而不是使用它:

$(document).bind('keyup', function(e){
  //....
}); 

请参阅演示:http://jsfiddle.net/rathoreahsan/cxV8D/1/

尝试使用:

$(document).bind('keyup', function(event){
  //....
});

参见演示: http://jsfiddle.net/rathoreahsan/cxV8D/

答案 1 :(得分:0)

旧版浏览器中的keyup也存在类似问题。

尝试使用keydown代替keypresskeyup

Opera(Chromium版本)中的特殊/控制键似乎只有keydown触发。

另一个问题是输入中的 Esc 会触发blur而非keyup,因此您必须再次绑定到keydown