Javascript event.preventDefault在Firefox中按键时表现异常

Javascript event.preventDefault在Firefox中按键时表现异常,javascript,jquery,firefox,preventdefault,Javascript,Jquery,Firefox,Preventdefault,下面的代码可以有效地防止在Chrome和Safari中触发浏览器默认设置。然而,由于某些原因,即使在Firefox中按下箭头键,我的代码也不会启动 $(window).keydown(function(e) { switch(e.which){ case 39: //right arrow key e.preventDefault(); $('body').scrollLeft(scrollNow + z(10));

下面的代码可以有效地防止在Chrome和Safari中触发浏览器默认设置。然而,由于某些原因,即使在Firefox中按下箭头键,我的代码也不会启动

$(window).keydown(function(e) {
    switch(e.which){
        case 39: //right arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow + z(10));
            break;
        case 37: // left arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow - z(10));
            break;
    }
});
我试图返回错误;而不是预防违约;也是,但没有效果。我还试着把e;在滚动左行之后,但它也不工作。有什么想法吗?

试试这个-

code = e.keyCode || e.which;
switch(code){
试试这个-

code = e.keyCode || e.which;
switch(code){
试试这个:

$(window).keydown(function(e) {
    switch(e.keyCode){
        case 39: //right arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow + z(10));
            break;
        case 37: // left arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow - z(10));
            break;
    }
});
试试这个:

$(window).keydown(function(e) {
    switch(e.keyCode){
        case 39: //right arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow + z(10));
            break;
        case 37: // left arrow key
            e.preventDefault();
            $('body').scrollLeft(scrollNow - z(10));
            break;
    }
});
试试这个

更新

试试这个

更新


我自己也遇到了这个问题。我为select输入的keydown事件添加了一个事件监听器,分别禁止左/右键遍历选项top/right。它在Chrome和IE中工作得非常好。根据我所读到的,到目前为止,它确实是一个有很多争论和猜测的问题,关于是否真的将其视为一个bug。我甚至将另一个事件监听器连接到前面提到的keyup选择输入;我注意到,在从keydown事件Firefox中调用preventDefault之后,它也被触发。然而,这一行动并没有被阻止。真烦人


仍在努力确定解决方法。

我自己刚刚遇到了这个问题。我为select输入的keydown事件添加了一个事件监听器,分别禁止左/右键遍历选项top/right。它在Chrome和IE中工作得非常好。根据我所读到的,到目前为止,它确实是一个有很多争论和猜测的问题,关于是否真的将其视为一个bug。我甚至将另一个事件监听器连接到前面提到的keyup选择输入;我注意到,在从keydown事件Firefox中调用preventDefault之后,它也被触发。然而,这一行动并没有被阻止。真烦人


仍在尝试确定解决方法。

谢谢。尽管尝试得不错,但这也会阻止任何其他密钥被识别。但它不起作用。真奇怪。我并没有其他和keydown事件冲突的代码。谢谢。尽管尝试得不错,但这也会阻止任何其他密钥被识别。但它不起作用。真奇怪。我并没有其他和keydown事件冲突的代码。@AKG charCode!==keyCode,另请参见@metadings,谢谢链接。我不知道。因此,我认为我的按键选择是正确的?@AKG charCode!==keyCode,另请参见@metadings,谢谢链接。我不知道。所以我从中得出结论,我对键控的选择是正确的?