为什么IE中没有猛禽?

时间:2011-07-21 17:52:41

标签: jquery javascript-events internet-explorer-7

前几天,SmashingMagazine给世界带来了精彩的gift。不幸的是IE(至少ie7)令我震惊和惊讶,它有一个问题。有谁知道为什么下面的代码在IE7中无法正常启动?

如果它可以匹配konami代码,它会监听按键并激活一个函数。我对JS活动并不了解,所以任何方向都会受到赞赏。

var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
            $(window).bind("keydown.raptorz", function(e){
                kkeys.push( e.keyCode );
                if ( kkeys.toString().indexOf( konami ) >= 0 ) {
                    init();
                    $(window).unbind('keydown.raptorz');
                }
            }, true);

编辑:其他人可以在IE7中测试这个以确认吗?

2 个答案:

答案 0 :(得分:1)

jQuery支持e.which用于keyCode以防e.keyCode不起作用。因此,请尝试将e.keyCode更改为e.which

但我认为它是true作为绑定中的第三个参数。拿走它然后再试一次。

这是我在IE兼容版本的小提琴中的副本:Link

更新:哇,$(window)上的keydown绑定不适用于IE,而$(document.body)不能用于FF,所以我做了$(document)并且它适用于两者。 ...

上面的链接现在有一个适用于FF和IE的版本。

答案 1 :(得分:0)

我没有IE方便,但我敢打赌它是keyCode绊倒你 - 我相信你需要做这样的事情才能以跨浏览器的方式获得正确的密钥代码:

var keyPressed = e.keyCode ? e.keyCode : e.charCode;