我有这个代码:
<input type="text" id="search" autocompleteoff>
使用以下代码打开自动建议框:
<div class="search-results">
<a class="qss" href="www.domain.com/page1">Lorem Lipsum Dolar</a>
<a class="qss" href="www.domain.com/page1">Lorem Lipsum Dolar</a>
<a class="qss" href="www.domain.com/page1">Lorem Lipsum Dolar</a>
<a class="qss" href="www.domain.com/page1">Lorem Lipsum Dolar</a>
<a class="qss" href="www.domain.com/page1">Lorem Lipsum Dolar</a>
<a class="qss" href="www.domain.com/page1">Lorem Lipsum Dolar</a>
<a class="qss" href="www.domain.com/page1">Lorem Lipsum Dolar</a>
<a class="qss" href="www.domain.com/page1">Lorem Lipsum Dolar</a>
</div>
我正在使用此 JavaScript 通过键盘箭头键在建议中移动:
$(document).ready(function() {
window.displayBoxIndex = -1;
$("#search").keyup(function(e)
{
if (e.keyCode == 40)
{
Navigate(1);
}
if(e.keyCode==38)
{
Navigate(-1);
}
});
var Navigate = function(diff) {
displayBoxIndex += diff;
var oBoxCollection = $(".qss");
if (displayBoxIndex >= oBoxCollection.length)
displayBoxIndex = 0;
if (displayBoxIndex < 0)
displayBoxIndex = oBoxCollection.length - 1;
var cssClass = "selected";
oBoxCollection.removeClass(cssClass).eq(displayBoxIndex).addClass(cssClass);
}
});
当我按下 Enter 键(键 13)时,如何使此 JavaScript 触发对所选项目的点击
另请注意,当搜索输入字段聚焦时,我已经将一个点击触发器附加到 13 上,将我带到全局搜索结果页面。这是
$('#search').keypress(function(x){if(x.keyCode==13){q=$(this).val();if(q!=this.defaultValue){
$('#vrid').click();
}
所以我想要一些有条件的东西,如果焦点位于搜索结果页面(在键 13 上)的输入,否则如果焦点在建议的项目上,则需要该项目的 href(在键 13 上) .
请帮忙 谢谢大家
最佳答案
假设selected
类被添加到链接中,一旦按下回车键:
var location = $(".selected")[0].href;
window.location.href = location;
更新代码:
$("#search").keyup(function (e) {
if (e.keyCode == 40)
Navigate(1);
if (e.keyCode == 38)
Navigate(-1);
if (e.keyCode == 13) {
// say goodbye to the page!
var location = $(".selected")[0].href;
window.location.href = location;
}
});
关于javascript - 如何触发点击键13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31308917/