Я пытаюсь создать окно автопредложения. Когда пользователь начинает вводить текст в поле ввода #tagSelection, JQuery извлекает предложения из базы данных через Ajax и отображает их в div #suggestBox, который отображается прямо под полем #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');
}
}
}
}
'[tagSelected = 1]'
? Вы имеете в виду'.tagSelected'
? (Или, может быть, вы используете технику, о которой я не знаю.) Вышеприведенный код не выглядит так, как будто он может удалять классы; проверьте в другом месте другие хуки обработки событий. - person slackwing   schedule 25.12.2012