为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

UYOU 2023-08-05 20:59:24
我正在开发一本字典,当我开始输入时它会自动完成,它会显示以该字母开头的单词列表。(如词汇表网站)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')})};现在我想添加向下箭头键来浏览列表。我添加了另一个按键事件监听器,它会继续执行第一个事件监听器函数。如何使其两者都发挥作用?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');                    }                }            });
查看完整描述

1 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

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

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

向下箭头键的键码为 40。

searchInput.addEventListener('keyup', function(evt) { 
   if (evt.keyCode == 40) return;
    //otherwise continue...


查看完整回答
反对 回复 2023-08-05
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信