当我开始打字时,我正在开发一本有自动完成功能的字典,它将单词显示为列表,从那个字母开始。(如vocabulary.com)
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');
}
}
});发布于 2020-11-16 13:22:59
keyup 事件发出一个keyCode属性,您可以使用该属性标识向下箭头键。
如果找到,则可以在此基础上退出回调。
向下箭头键的键代码为40。
searchInput.addEventListener('keyup', function(evt) {
if (evt.keyCode == 40) return;
//otherwise continue...https://stackoverflow.com/questions/64858703
复制相似问题