gpt4 book ai didi

javascript - 在自动建议中使用上下键向上/向下切换

转载 作者:行者123 更新时间:2023-11-28 01:32:19 25 4
gpt4 key购买 nike

我正在尝试使用带有 php 和 mysql 的 ajax 进行自动建议。自动建议运行良好,但我在使用上下键切换时遇到问题。我正在关注这个 jsfiddle作为完成我的工作的例子。但是无法理解为什么 Navigate 函数被调用了两次。因为当我按下按键时它会发出两次警报。

j查询

 var Navigate = function(diff){


displayBoxIndex += diff;

var oBoxCollection = $("#searched a .searchFull");

if (displayBoxIndex >= oBoxCollection.length) {
displayBoxIndex = 0;
alert("A");
}
if (displayBoxIndex < 0) {
displayBoxIndex = oBoxCollection.length - 1;
alert("B");
}
var cssClass = "selected";
oBoxCollection.removeClass(cssClass).eq(displayBoxIndex).addClass(cssClass);

}
$(document).on('keypress keyup', "#search", function (e) {
if (e.keyCode == 13 || e.keyCode == 32) {
$('.display_box_hover').trigger('click');
return false;
}
if (e.keyCode == 40) {
//down arrow
Navigate(1);
}
if (e.keyCode == 38) {
//up arrow
Navigate(-1);
}
});

HTML

 <div id="searched" style="display: block;">
<a href="http://localhost/c2c/init/product/78">
<div class="searchFull">
</a>
<a href="http://localhost/c2c/init/product/77">
<div class="searchFull">
</a>
<a href="http://localhost/c2c/init/product/76">
<div class="searchFull">
</a>
<a href="http://localhost/c2c/init/product/73">
<div class="searchFull">
</a>

最佳答案

这是针对您的问题的解决方案:

您调用两个事件,如:keypresskeyup。所以,它会调用两次。只需删除一个像这里我删除 keypress 在这里它工作得很好。

$(document).on('keyup', function (e) {
if (e.keyCode == 13 || e.keyCode == 32) {
$('.display_box_hover').trigger('click');
return false;
}
if (e.keyCode == 40) {
//down arrow
//alert("down");
Navigate(1);
}
if (e.keyCode == 38) {
//up arrow
Navigate(-1);
}
});

检查 Fiddle here.

并且根据评论 Here selected class not removed checked in firebug。见下图。

enter image description here

希望对您有所帮助。

关于javascript - 在自动建议中使用上下键向上/向下切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29933753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com