上下键仅适用于firefox

时间:2014-01-20 16:12:25

标签: javascript jquery cross-browser

我正在编写一个脚本,用于使用箭头键移动li元素:

$('#tw_nav').focus(function(){
        $(document).keypress(function(e) {
            switch(e.keyCode) {
                // User pressed "up" arrow
                case 38:

                break;
                // User pressed "down" arrow
                case 40:

                break;
                // User pressed "enter"
                case 13:

                break;
            }
        });
    });

所以,当我用firefox测试这个代码时,没关系,我可以得到38(上),40(下)和13(输入)的情况。但是使用safari,chrome或ie,这段代码不起作用....任何想法?

3 个答案:

答案 0 :(得分:1)

您可以将keydown()事件与event.which属性一起使用:

$('#tw_nav').keydown(function(e) {
    switch(e.which) {
        // User pressed "up" arrow
        case 38:
            alert('Up arrow pressed');    
            break;
        // User pressed "down" arrow
        case 40:
            alert('Down arrow pressed');      
            break;
        // User pressed "enter"
        case 13:
            alert('Enter pressed');     
            break;
    }
});

<强> Fiddle Demo

答案 1 :(得分:0)

试试这个,

 $('#tw_nav').keypress(function(e) {

答案 2 :(得分:0)

当你使用jQuery时。使用e.which

$('#tw_nav').keydown(function(e) {
    switch(e.which) {
        // User pressed "up" arrow
        case 38:

        break;
        // User pressed "down" arrow
        case 40:

        break;
        // User pressed "enter"
        case 13:

        break;
    }
});