【发布时间】:2012-12-25 21:45:21
【问题描述】:
我正在尝试创建一个自动建议框。当用户开始在#tagSelection 输入字段中输入内容时,JQuery 通过 Ajax 从数据库中获取建议并将这些建议显示在 #suggestBox div 中,该 div 显示在 #tagSelection 字段正下方。
现在我想让用户使用向下箭头键来选择其中一个建议。我已经开始通过处理 keydown() 事件并在此事件期间为第一个条目分配一个类来构建它。我面临的问题是,当我放开向下箭头键时,该类又被删除了。当我放开钥匙时,我需要它保持分配状态。这可能吗?
HTML
<div class="form-entry">
<input id="tagSelection" name="tags" type="text" value="" size="40">
<div id="suggestBox" style="">
<a href="#" id="1">design</a>
<a href="#" id="3">debit card</a>
<a href="#" id="4">deer</a>
<a href="#" id="addTag">Add word</a>
<div id="selectedTags"></div>
</div>
jQuery
(function() {
$('#tagSelection').keydown(downArrowKeyHandler);
})();
function downArrowKeyHandler(event) {
if (event.keyCode == 40) {
if ($('#suggestBox').length > 0) {
if ($('[tagSelected = 1]').length == 0) {
// the tagSelected class gives the entry a colored background
$('#suggestBox').children().filter(':first').addClass('tagSelected');
}
}
}
}
【问题讨论】:
-
40 是向下键 ascii 码?
-
'[tagSelected = 1]'是什么?你的意思是'.tagSelected'? (或者也许你正在使用一种我不知道的技术。)上面的代码看起来不可能删除类。检查其他地方的其他事件处理钩子。
标签: jquery events time keydown short