У меня есть один слайдер на моей странице, и я часто использую клавиатуру для перемещения рукоятки влево и вправо. Однако, если ручка не выбрана, она не будет скользить, когда я нажимаю клавиши. Я попытался имитировать щелчок на дескрипторе, но, похоже, его не выбирает.
$handle = $slider.find('.ui-slider-handle');
$handle.click();
Как перенести ручку влево и вправо с помощью клавиатуры без необходимости ее выбирать?
Пропустите keyup
и keydown
события к ручке, когда соответствующие клавиши нажаты. Вы должны делать это только тогда, когда дескриптор еще не выбран.
$handle = $slider.find('.ui-slider-handle')
$(document).on('keyup keydown', function(e) {
if ( $handle.hasClass('ui-state-focus') ) return;
if (e.which === 37 || e.which === 39) {
e.target = $handle.get(0);
$handle.triggerHandler(e);
}
});