jQuery keyup工作不正确
jQuery keyup working incorrectly
我试图使一个整数变量增量每次按下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")
}
}
});
});
上样件的问题仍然存在吗?
相关文章:
- 反向名称的JavaScript函数不能正确工作(例如学习JavaScript-O'Reilly)
- 不正确的工作jquery插件bxslider与插件elevatezoom
- jQuery函数.text()的工作不正确
- 谷歌地图标记IE中的位置不正确,在chrome上工作正常
- 功能重新启动工作不正确
- jqueryflot,水平并排和堆叠的图表不能正确工作
- CKEditor android格式化程序工作不正确
- Facebook JavaScript发送对话框,回调函数工作不正确
- 为什么这个闭包示例工作不正确
- ClearInterval不能正确工作
- 以编程方式添加表行在javascript中不能正确工作
- Jquery更改函数不能正确工作与多个类
- jQuery keyup工作不正确
- 重定向到动作不正确工作在我的控制器在ASP.净MVC
- 复选框逻辑不能正确工作
- 选择“更改”不能正确工作
- 为什么JavaScript Date对象构造函数不能正确工作
- 在Javascript中设置CSS 3过渡和转换在Chrome中工作,但在IE 10, FF中不正确
- 不能让getElementsByTagName正确工作
- 使用phoneback——从xml服务器取回不正确工作