javascript - 如何在下拉列表中选择不同的跨度值

标签 javascript jquery html css

我有使用 div 和 span 标签创建的下拉列表。 这就是我当前的下拉菜单的样子。

<div id="userList>
   <div class="selectOption">
         <span class="selectOption Current" value="mike">Mike</span>
         <span class="selectOption" value="andrew">Andrew</span>
         <span class="selectOption" value="emma">Emma</span>
   </div>
<div>

目前,如果我在展开列表时按“E”,则不会自动选择用户 Emma。

我想在打开此下拉菜单时通过按第一个字母上的键来选择用户。

我已经研究了很多,但找不到解决方案。

谁能为我提供这个问题的解决方案?

最佳答案

这可能比您要找的要多,但这里有一个示例,它创建了一个与您描述的内容类似的下拉菜单。希望您可以从元素示例中获得一些想法。

关键思想是使用keyup() 捕获按键。但是,为防止错误,我们首先进行测试以确保最后单击的元素是下拉列表(标题 div,或其中一个 span)。

此外,ID 被添加到每个 span 中,以便更简单地设置被点击的 span 的样式。

Full jsFiddle Example

$(document).keyup(function(e){
    if ( activeEl=='ulTitle' || activeEl=='selectOption' ){
        $('.selectOption').removeClass('Current');

        var code = e.keyCode || e.which;
        if (code==77 || code==109) { //m or M
            key='m';
            nam='Mike';
        }else if(code==65 || code==97) { //m or M
            key='a';
            nam='Andrew';
        }else if(code==69 || code==101) { //m or M
            key='e';
            nam='Emma';
        }else if(code==13) { //Enter key
            $('#mybutt').click();
        }
        $('.selectOption#'+key).addClass('Current');
    }
});

关于javascript - 如何在下拉列表中选择不同的跨度值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31631258/

相关文章:

jquery - 对表格数据进行排序

jquery - 将 Logo 与导航链接对齐,并将 Logo 置于响应模式的链接上方

html - Safari 和移动浏览器中的 CSS 定位错误

html - Firefox CSS 和/或 D3 的区别

javascript - 表单内的两个冲突按钮

javascript - 你如何调试 Javascript 应用程序?

javascript - Python3 + Django : How to use Jquery in render_to_string template?

javascript - 如何在不同时间使用 jQuery 更改类?

javascript - 如何更改点击类?

javascript - 有哪些工具可用于代码比较或并排比较?如何查找 Javascript 中的错误?