2010-11-11 1 views
0

Я использую плагин jQuery scrollTo вместе с событиями keydown для прокрутки окна по горизонтали с помощью клавиш J и K. Это работает довольно хорошо, однако у меня есть входные данные на странице, поэтому я хотел бы отключить поведение прокрутки, когда входы сосредоточены. Мой код ниже:Как я могу исключить формы/входы из функции, использующей команды клавиатуры?

// scroll left/right 
$(document).keydown(function (evt) { 
    if (evt.keyCode == 75) { 
    evt.preventDefault(); 
    $.scrollTo('+=201px', '', { axis:'x' }); 
    } else if (evt.keyCode == 74) { 
    evt.preventDefault(); 
    $.scrollTo('-=201px', '', { axis:'x' }); 
    } 
}); 

ответ

2

Вы можете проверить что-то вроде

$(document).keydown(function (evt) { 
var element = $(evt.target); 
if (!element.is('input,textarea')) { 
    if (evt.keyCode == 75) { 
    evt.preventDefault(); 
    $.scrollTo('+=201px', '', { axis:'x' }); 
    } else if (evt.keyCode == 74) { 
    evt.preventDefault(); 
    $.scrollTo('-=201px', '', { axis:'x' }); 
    } 
    } 
}); 
0

Вы можете получить доступ к целенаправленному элементу со свойством evt.target. Поэтому следующая модификация должна сделать это:

$(document).keydown(function(evt){ 
    if(!$(evt.target).is("input")){ 
    if (evt.keyCode == 75) { 
     evt.preventDefault(); 
     $.scrollTo('+=201px', '', { axis:'x' }); 
    } else if (evt.keyCode == 74) { 
     evt.preventDefault(); 
     $.scrollTo('-=201px', '', { axis:'x' }); 
    } 
} 
}) 

 Смежные вопросы

  • Нет связанных вопросов^_^