Опитвам се да създам кутия за автоматично предлагане. Когато потребителят започне да въвежда в полето за въвеждане #tagSelection, JQuery извлича предложения от базата данни чрез Ajax и ги показва в #suggestBox div, което се показва точно под полето #tagSelection.
Сега искам да дам възможност на потребителя да използва клавиша със стрелка надолу, за да избере едно от предложенията. Започнах да изграждам това, като обработих събитието keydown() и присвоих клас на първия запис по време на това събитие. Проблемът, с който се сблъсквам, е, че класът се премахва отново, когато пусна клавиша със стрелка надолу. Имам нужда да остане зададен, когато пусна ключа. Това възможно ли е?
HTML
<div class="form-entry">
<input id="tagSelection" name="tags" type="text" value="" size="40">
<div id="suggestBox" style="">
<a href="/bg#" id="1">design</a>
<a href="/bg#" id="3">debit card</a>
<a href="/bg#" id="4">deer</a>
<a href="/bg#" 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