Ключевые коды jQuery / JS: несколько ключевых кодов в одном операторе IF - PullRequest
1 голос
/ 05 октября 2011

Я пытаюсь настроить некоторые коды клавиш для приложения, над которым я работаю, но это действительно сводит меня с ума.

Я пытаюсь настроить коды клавиш, которые бы сообщали, от keyCode 65 до 91, 44, 47 и немногие другие, работают.

Итак, у меня есть это:

var e = event || evt;
if ((e.keyCode > 65 || e.Keycode < 91)){
    // Do function
}

который работает найти. Теперь, если я попытаюсь добавить другой код ключа, он не будет работать. Вот что я попробовал:

if ((e.keyCode > 65 || e.Keycode < 91) && (e.keyCode == 44) && (e.keyCode == 47)){

Кто-нибудь помогает мне добавлять разные коды клавиш в одном операторе If?

Большое спасибо

Ответы [ 3 ]

3 голосов
/ 05 октября 2011

Попробуйте это

if (
  // get all the keys between 65-90
  (e.keyCode >= 65 && e.keyCode <= 90) 
  // or  44 or 47
  || e.keyCode == 44 || e.keyCode == 47)
{
   // do stuff
}

Если условная логика сбивает вас с толку, я думаю, вам лучше всего подумать о числах, которые вы хотите включить (не исключая).Разбейте их на диапазоны и разместите каждый диапазон на отдельной линии.Начните с псевдокода:

if 
  // keys between 31-47
  // or keys between 58-90
then
  // do stuff
end

Затем заполните условия:

if (
  // keys between 31-47
  (e.keyCode >= 31 && e.keyCode <= 47) 

  // or keys between 58-90
  || (e.keyCode >= 58 && e.keyCode <= 90) 
)
{
  // do stuff
}
0 голосов
/ 05 октября 2011

Если вы хотите, чтобы все от 31 до 90, за исключением тех, которые с 48 по 57:

if (e.keyCode >= 31 && e.keyCode <= 90 && !(e.keyCode >= 48 && e.keyCode <= 57)) {
  // whatever 
}

Теперь это может быть записано эквивалентно как:

if (e.keyCode >= 31 && e.keyCode <= 47 || e.keyCode >= 58 && e.keyCode <= 90) {
  // whatever
}
0 голосов
/ 05 октября 2011
if ((e.keyCode > 65 && e.Keycode < 91) || e.keyCode == 44 || e.keyCode == 47){
   //do stuff
}
...