2017-10-29 29 views
0

以下のkeypress関数は、指定されたキーが押された回数に応じて特定の関数を呼び出します。実行時には、最初のif文だけが実行され、2番目のif文は実行されません。キーを押した回数に応じてアクションを実行しますか?

$(document).keypress(function(number) { 
     var pressCount = 0; 
     pressCount++; 

     if (number.which == 67 || number.which == 99) { 
     if (pressCount = 1) { 
      callThisFunction(); 
     } else if (pressCount = 2) { 
      callThisOtherFunction(); 
      } 
     } 
}); 

答えて

1

あなたのif文の中=記号が欠落しています。変更:

if (pressCount == 1) { 
    callThisFunction(); 
} else if (pressCount == 2) { 
    callThisOtherFunction(); 
} 

また、pressCountはあなたの関数の外で変数を宣言します。それ以外の場合は、キーを押すたびに0にリセットされます。

var pressCount = 0; 

$(document).keypress(function(number) { 
    ... // rest of your code 
3

関数が実行されるたびに「pressCount」が0にリセットされている可能性があります。

var pressCount = 0; 

$(document).keypress(function(number) { 
     pressCount++; 

     if (number.which == 67 || number.which == 99) { 
     if (pressCount == 1) { 
      callThisFunction(); 
     } else if (pressCount == 2) { 
      callThisOtherFunction(); 
      } 
     } 
}); 

には、以下の微調整をしてみてください

関連する問題