#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. Спасибо… проверит это