Скопировал и видеоизменил такой скриптик:
https://jsfiddle.net/dvwdboh0/3/
Дано:
Список (ul > li), который подгружается через ajax (человек вводит запрос и появляются элементы, live поиск)
html<div id="ba_ajax_result">
<ul id="ba_ajax_result_product">
<li class="title_product">Товаров (3/3)</li>
<li class="item_product ">
<a href="//google.ru"><span class="name_product">Гугл</span></a>
</li>
<li class="item_product ">
<a href="//ya.ru"><span class="name_product">Яндекс</span></a>
</li>
<li class="item_product ">
<a href="//ok.ru"><span class="name_product">Одноклассники</span></a>
</li>
<li>
<a id="ba_prev_product" class="ba_prev" href="javascript:void(0)" rev="1" onclick="prevProduct()"><< Назад</a>
<a id="ba_next_product" class="ba_next" rev="1" href="javascript:void(0)" onclick="nextProduct()">Вперед >></a>
</li>
</ul>
</div>
js$(document).ready(function() {
$('#ba_ajax_result_product li.item_product:nth-of-type(2)').addClass('active');
$(window).keyup(function(e) {
var $current = $('#ba_ajax_result_product li.item_product.active');
var $next;
if (e.keyCode == 38)
$next = $current.prev('li.item_product');
if (e.keyCode == 40)
$next = $current.next('li.item_product');
if (e.keyCode == 13) {
$('#ba_ajax_result_product li.item_product > a').click();
}
if ($next.length > 0) {
$('#ba_ajax_result_product li.item_product').removeClass('active');
$next.addClass('active');
}
});
});
css
.active {
background: yellow;
font-weight: bold;
}
Задача:
- Сделать так, чтобы работало с динамически подгружающимися элементами (ajax)
- Назначить первому элементу списка ссылок класс active
- Переключать элементы нажатием вверх/вниз на клавиатуре
- При нажатии на Enter кликнуть по ссылке выделенного элемента
Часть уже сделана, вопросы по 1-ому и 4-ому пункту задачи. (Возможно, во 2-ом пункте тоже как-то по-другому сделать можно)
Помогите плиз!