Я разрабатываю замену меню выбора в jquery.
Сначала я должен сделать новое меню выбора доступным для фокусировки, просто добавив tabindex="0"
в контейнер.
Затем я отключаю фокус на исходном меню выбора и переключаю его на новый. Когда новый фокус находится в фокусе, и вы нажимаете стрелки вверх и вниз, параметры меняются соответственно, но возникает большая проблема. Когда вы нажимаете стрелки, тело тоже движется.
Я пробовал все эти решения до сих пор, но безуспешно:
$(window).unbind('scroll');
$(document).unbind('scroll');
$('body').unbind('scroll');
$(window).unbind('keydown');
$(document).unbind('keydown');
Проверьте код здесь http://pastebin.com/pVNMqyui Этот код взят из разрабатываемой версии Ideal Forms < href = "http://code.google.com/p/idealforms" rel = "nofollow noreferrer"> http://code.google.com/p/idealforms, который я собираюсь выпустить в ближайшее время , с поддержкой клавиатуры.
Есть идеи, почему это не работает?
РЕДАКТИРОВАТЬ: Решено!
Нашел ответ в этом сообщении тег ссылки jquery включить отключить
var disableScroll = function(e){
if (e.keyCode === 40 || e.keyCode === 38) {
e.preventDefault();
return false;
}
};
// And then...
events.focus: function(){ $(window).on('keydown', disableScroll); }
events.blur: function(){ $(window).off('keydown', disableScroll); }
Оно работает!
event.preventDefault();
в обработчике любого события, которое может вызвать прокрутку окна ... - person Aaron   schedule 13.12.2011