У меня есть вход для поиска элементов,
<input type="text" id="Skill-item" class="field-input" />
<ul class="search-results-wrapper" id="skill-list"></ul>
и динамическое добавление результатов к li
.
$.each(data, function (key, item) {
$('<li/>').addClass('ui-menu-item active').attr('role', 'menuitem')
.html("<a onclick=\"setText('" + item.Name + "',"+item.Id+")\">" + item.Name + "</a>")
.appendTo(skillList);
, когда отображаются результаты, я хочу сфокусировать элементы
$(document).on("keydown","#Skill-item",
function (event) {
if (event.which === 40) {
$('#skill-list li:first').focus().addClass('active');
}
это установлен active
класс для первых предметов, но не получить фокус для предметов.
$(document).on("keydown",
".ui-menu-item",
function (event) {
if (event.which === 40) {
if ($this.nextAll('li').first().length) {
$this.blur().removeClass('active');
$this.nextAll('li').first().focus().addClass('active');
return false;
}
} else if (event.which === 38) {
if ($this.prevAll('li').first().length) {
$this.blur().removeClass('active');
$this.prevAll('li').first().focus().addClass('active');
return false;
}
}
}
);