我创建了一个投资组合网站,在浏览图片时,我希望用户能够使用箭头键进行导航。我有以下代码在FF中运行良好,但不适用于Chrome,Safari或IE。
$(document).keypress(function (evt) {
if (evt.keyCode == 39) {
evt.preventDefault();
$.scrollTo('+=564px', 800, { axis:'x' });
} else if (evt.keyCode == 37) {
evt.preventDefault();
$.scrollTo('-=564px', 800, { axis:'x' });
}
});
我安装了scrollTo插件并且工作以及有效的jQuery文件,所以这不是问题。可以告诉我为什么这可能在其他浏览器中不起作用吗?
实例here
帮助永远赞赏!
答案 0 :(得分:6)
试试这个:
$(document).bind('keydown',function(evt) {
});
而不是
$(document).keypress(function(evt) {
});
这是因为IE以不同的方式处理KeyPress到FireFox。
编辑,因为你很高兴获得一个不错的答案:
我还会将您的陈述更改为switch
:
$(document).bind('keydown',function(evt) {
switch(evt.keyCode) {
case 65:
alert("you pressed key 65");
break;
}
});
答案 1 :(得分:3)
如果你想制作这种跨浏览器,你也应该知道各个浏览器的keyCodes可能不一样。 jQuery提供属性event.which
,它应该规范化浏览器之间的差异。
http://api.jquery.com/event.which
来自文档:
event.which
规范化event.keyCode
和event.charCode
。建议观看event.which
键盘输入键。