首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从事件侦听器中排除向下箭头键

如何从事件侦听器中排除向下箭头键
EN

Stack Overflow用户
提问于 2020-11-16 13:15:55
回答 1查看 140关注 0票数 0

当我开始打字时,我正在开发一本有自动完成功能的字典,它将单词显示为列表,从那个字母开始。(如vocabulary.com)

代码语言:javascript
复制
searchInput.addEventListener('keyup',function(){
        let search = $('#search').val()
        
       
        $.ajax({
            type: 'GET',
            url: '/home/autocomplete/' + search
            dataType: "json",

            success: function (response) {
            let word = response.words
            suggestionsPanel.innerHTML = '';
           
            
    $.each(word, function (idx, w) {
        $('.suggestions').append(`<li name = ${w}>${w}</li>`)
        // $('.suggestions li:first').addClass('selected')
})};

现在,我想添加向下箭头键来移动列表。我添加了另一个键向下事件侦听器购买,它继续执行第一个事件侦听器功能。如何使两者都能发挥作用?

代码语言:javascript
复制
var li = $('.suggestions > li');
            var liSelected; 
            $(window).keydown(function(e) {
                if(e.which === 40) {
                    if(liSelected) {
                        liSelected.removeClass('selected');
                        next = liSelected.next();
                        if(next.length > 0) {
                            liSelected = next.addClass('selected');
                        } else {
                            liSelected = li.eq(0).addClass('selected');
                        }
                    } else {
                        liSelected = li.eq(0).addClass('selected');
                    }
                } else if(e.which === 38) {
                    if(liSelected) {
                        liSelected.removeClass('selected');
                        next = liSelected.prev();
                        if(next.length > 0) {
                            liSelected = next.addClass('selected');
                        } else {
                            liSelected = li.last().addClass('selected');
                        }
                    } else {
                        liSelected = li.last().addClass('selected');
                    }
                }
            });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-16 13:22:59

keyup 事件发出一个keyCode属性,您可以使用该属性标识向下箭头键。

如果找到,则可以在此基础上退出回调。

向下箭头键的键代码为40。

代码语言:javascript
复制
searchInput.addEventListener('keyup', function(evt) {
    if (evt.keyCode == 40) return;
    //otherwise continue...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64858703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档