自定义选择下拉列表无法在键上下运行

时间:2013-01-31 09:34:02

标签: jquery

我使用自定义jQuery进行下拉列表。现在它适用于所有浏览器,除了Mozilla用于下拉列表的键盘上下事件。

我使用以下脚本进行下拉键盘事件。

$(document).ready(function(){   
if (!$.browser.opera) {
    $('select.selectlistbig').each(function(){
        var title = $(this).attr('title');
        if( $('option:selected', this).val() != ''  ) title = $('option:selected',this).text();
        $(this)
            .css({'z-index':10,'opacity':0,'-khtml-appearance':'none'})
            .after('<span class="selectlistbig">' + title + '</span>')
            .change(function(){
                var val = $('option:selected',this).text();
                    $(this).next().text(val);
                })
    });

    $('select.selectlistbig').keypress(function (e) {
        if(e.keyCode == 37 || e.keyCode == 38 || e.keyCode == 39 || e.keyCode == 40 )
        {                   
            var val = $('option:selected', this).text();
            $(this).next().text(val);           
        }
    });
});

帮助我。

谢谢

1 个答案:

答案 0 :(得分:0)

e.keyCode在firefox中不起作用。请使用 e.which

尝试下面的代码
$('select.selectlistbig').keypress(function (e) {
    var code = (e.keyCode ? e.keyCode : e.which);
    if(code == 37 || code == 38 || code == 39 || code == 40 )
    {                   
        var val = $('option:selected', this).text();
        $(this).next().text(val);           
    }

});