【发布时间】:2020-07-26 23:07:45
【问题描述】:
我想让实时搜索框像 google 一样,我已经在后端实现 jquery ajax 以获取结果,但是我想在用户按下按键时启用我想在 ajax 返回建议中添加一个类,就像谷歌,当用户按下建议时,hightlight 会上升一个地方,当用户按下 enter 时,它将转到 href。以下是我的 ajax 返回 html 代码:
<ul id="suggestion" style="list-style-type: none;">
<li><a class="suggestion-link" href="http://eled.test/post/sunt-iure-nihil-deleniti-rerum"> Sunt Iure Nihil Deleniti Rerum.</a>
</li>
<li><a class="suggestion-link" href="http://eled.test/post/porro-et-numquam-nihil-nesciunt-nesciunt"> Porro Et Numquam Nihil Nesciunt Nesciunt.</a>
</li>
<li><a class="suggestion-link" href="http://eled.test/post/my-new-post-yeah"> My New Post Yeah !!</a> </li>
<li><a class="suggestion-link" href="http://eled.test/post/rerum-voluptatem-fuga-excepturi-provident-et-distinctio"> Rerum Voluptatem Fuga Excepturi Provident Et...</a>
</li>
</ul>
下面是我的搜索表单
<form method="GET" action="{{route('home.search')}}" class="search-form" id="search-form" >
<div class="form-group">
<input type="text" name="keyword" id="search-input" placeholder="What are you looking for?" autocomplete="off">
<button type="submit" class="submit"><i class="fas fa-search"></i></button>
</div>
<ul id="suggestion" style="display: none;list-style-type: none; "></ul>
</form>
下面是我的ajax
$(document).ready(function() {
//sidebar search function ajax
$("#search-input").keyup(function() {
var keyword = $('#search-input').val();
var url = "{{route('home.ajax_search')}}";
if (keyword == "") {
$("#suggestion").html("");
$('#suggestion').hide();
}else {
$.ajax({
type: "GET",
url: url ,
data: {
keyword: keyword
},
success: function(data) {
$("#suggestion").html(data).show();
//console.log(data);
$('#search-input').on("keydown", function (e) {
var listItems = $('.suggestion-link');
switch(e.which) {
case 38:
console.log('up');
break;
case 40:
listItems.addClass('selected');
console.log('down');
break;
default: return;
}
});
}
});
}
});
});
在 ajax 内部,当我尝试上下键时,我可以让控制台日志正常工作。 38 / 40 但我无法将所选类添加到我遵循此Add keydown (keyboard arrow up/down) support for AJAX Live Search PHP 的 li 元素 问题是我无法将活动类应用于返回元素,因此用户不会知道向下/向上键正在工作,谢谢
【问题讨论】:
标签: javascript jquery ajax search