Enter キーを押すたびに整数変数をインクリメントしようとしています。この変数は、配列から値を出力するために使用されます。
$(document).keyup(function(e) {
if (e.keyCode == 13) {
console.log(++currSteps);
$('#output').text(outNum[currSteps])
if(outNum[currSteps] % 2 == 0){
$('body').css("background", "#4b84e5")
}
else if(outNum[currSteps] == 1){
$('body').css("background", "#9dd622")
}
else{
$('body').css("background", "#d16323")
}
}
});
実際にEnterを押すと問題が発生します。最初に押すと、正しく機能し、変数がインクリメントcurrSteps
され、配列内の次の値が表示されます。ただし、Enter キーをもう一度押すと、元の値に戻ります。Enter キーを押してcurrStep
いる限り、元の値が表示されます。
さて、はい、このイベントは のためkeyup
のものkeydown
です。ただし...開発者ツールを開いてコンソール内をクリックしてから元のウィンドウに戻ると、keyup
コードは完全に機能します。開発者ツールを開いた後にのみ機能するのはなぜですか?
jQuery 1.11.1 および 1.10.2 でこれを試しました。
編集:currSteps
およびoutNum
宣言。
$('#in').click(function(){
$('#output').empty();
$('#steps').empty();
var steps = 0
currSteps = 0
var inNum = parseInt($('#input').val());
var col = '#ffffff'
outNum = []
outNum.push(inNum)
...