У меня есть поле ввода и div с четырьмя операционными системами.Когда курсор находится в поле ввода и вы нажимаете стрелку вниз, он должен перемещаться вниз, циклически проходя по каждому разделу ОС, когда вы нажимаете вниз.Проблема в том, что когда вы добираетесь до последнего div и нажимаете вниз, он должен вернуться к первому div сверху, однако, кажется, что он «пропускает» несуществующий div на первой клавиатуре, нажмите вниз, но если вы нажметево второй раз он возвращается к первому элементу div, как и должно быть.Как я могу сделать так, чтобы он не «пропускал» и сразу переходил к первому div в списке, нажимая вниз от последнего div в списке?Любая идея о том, как заставить это работать правильно?
Вот HTML:
<input id="system" value="" />
<div id="system-drop">
<div class="os active">Mac</div>
<div class="os">Windows</div>
<div class="os">Linux</div>
<div class="os">Other</div>
</div>
Вот jQuery:
$("#system").live('keyup',function(e){
var curr = $('#system-drop').find('.active');
if(e.keyCode == 40 || e.charCode == 40){
if(curr.length){
$('.os.active').removeClass('active');
$(curr).next().addClass('active');
} else{
$('#system-drop div:first-child').addClass('active');
}
}
});
Вот скрипка:http://jsfiddle.net/TF6Rb/771/