我正在开发一本字典,当我开始输入时它会自动完成,它会显示以该字母开头的单词列表。(如词汇表网站)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...
添加回答
举报
0/150
提交
取消