【发布时间】:2017-04-05 08:08:37
【问题描述】:
我有两个 id 为“display”和“display2”的 div,我将函数的结果放在其中。
下面的代码所做的是在一行中打印one two three four,范围从one 开始,当您按左右键时,它会删除前一项的跨度并在下一项上放置一个跨度.
我在最底部还有一个点击功能,当点击 span 时,display2 将显示一个应该向上计数的数字。
问题是:
当屏幕加载,并且没有按下任何键时,单击 spans,例如,<span>one</span> 将正常增加显示 2 中的数字计数。
一旦我按下左右键,假设跨度在<span>three</span>,如果我点击尝试点击<span>three</span>,#display2 中的计数器不会做任何事情。为什么会这样,我该如何解决?
var arr1 = ["one ", "two ", "three ", "four "];
var arr2 = ["<span>one </span>", "two ", "three ", "four "];
var counter = 0;
function count(){
if (counter>0 && event.keyCode==37){
counter--;
}
else if (counter<3 &&event.keyCode==39){
counter++;
}
}
function spaN() {
arr2[counter] = '<span>' + arr1[counter] + '</span>';
if (event.keyCode==37){
arr2[counter+1] = arr1[counter+1];
}
else if (event.keyCode==39){
arr2[counter-1] = arr1[counter-1];
}
}
$(document).keydown(function(event){
switch(event.keyCode){
case 37:
count();
spaN();
$('#display').html(arr2);
break;
case 39:
count();
spaN();
$('#display').html(arr2);
break;
}
});
$('#display').html(arr2);
var k = 0;
$('span').click(function(){
k++;
$('#display2').html(k);
})
【问题讨论】:
标签: javascript jquery keyevent