Выбор выпадающего списка Ajax с помощью клавиши со стрелкой

#javascript #php #jquery

#javascript #php #jquery

Вопрос:

Я создал выпадающий список ajax, мне нужно изменить цвет фона выпадающих значений, когда я нажимаю стрелку вниз и клавишу со стрелкой вверх.Здесь, когда я нажимаю клавишу, фон меняется, и он немедленно исчезает.он не работает в выпадающем списке ajax, если я помещаю и оповещаю перед установкой класса selectedhash, он работает, иначе он не работает.

Здесь div будет обновлен результатами ajax со списком.

Пожалуйста, помогите мне решить эту проблему.

   <div class='textautocomplete'>
  </div>


 $(document).on("keydown", function(e) { 
 if (e.keyCode == 40) 
 { 
 if(chosen === "")  
 {
 chosen = 0;

 } else if((chosen 1) < $('.textautocomplete ul').length) 
 {
 chosen  ; 
 }
 $('.textautocomplete ul').removeClass('selectedhash');
 $('.textautocomplete ul:eq(' chosen ')').addClass('selectedhash');

 return false;
 }
 if (e.keyCode == 38) { 
 if(chosen === "") {
 chosen = 0;
 } else if(chosen > 0) {
 chosen--;            
 }
 $('.textautocomplete ul').removeClass('selectedhash');
 $('.textautocomplete ul:eq(' chosen ')').addClass('selectedhash');
 return false;
 }
 });


  $(".textinput").live("keyup",function(e)
  {
  $.post('/users/getusers',{data:dataString},function(result){
  if(result!=='') 
  {
  $('.textautocomplete').show();
  $('.textautocomplete').html(result);
  }
  else
  {
  $('.textautocomplete').hide();
  $('.textautocomplete').html('');
  }
  });
  return false
  });
  

Комментарии:

1. Пожалуйста, настройте скрипку — jsfiddle.net

Ответ №1:

Сначала измените: «.live» на: «.on» в строке:

 $(".textinput").live("keyup",function(e)
  

потому что:

 "As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers. Users of older versions of jQuery should use .delegate() in preference to .live()."
  

Подробнее: метод jQuery .live()

Во-вторых, добавьте код фильтра ключевого кода в:

 $(".textinput")
  

Например:

 if ( e . keyCode == 38  || e . keyCode == 40 ) { return false; }
  

Рабочий пример скрипки: JSFiddle

Комментарии:

1. Спасибо… проверит это