我试图使一个整数变量增量每次按下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
并显示数组中的下一个值。但是,当我再次按回车键时,它会恢复到原来的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)
...
我允许自己写一点您丢失的变量定义:JSFiddle
$(document).ready(function() {
var currSteps = 0;
var outNum = { 0: 0, 1: 1, 2: 2 };
$(document).keyup(function(e) {
if (e.keyCode == 13) {
console.log(++currSteps);
$('#output').val(outNum[currSteps] + ' ' + currSteps)
if(outNum[currSteps] % 2 == 0){
$('body').css("background", "#4b84e5")
}
else if(outNum[currSteps] == 1){
$('body').css("background", "#9dd622")
}
else{
$('body').css("background", "#d16323")
}
}
});
});
上样件的问题仍然存在吗?