我无法弄清楚这一点。发生的情况是,当我单击 playerMove()
中的 div 时,它应该使 var clickedId 成为该 id。如果我单击一个 div,然后单击另一个 div,它会起作用,但如果我单击同一个 div 两次,变量就会加倍并加一。例如:
第一次点击 = 3 第二次点击 = 4 这很好用
第一次点击 = 3
第二次点击 = 3
这会创建类似 var clickedId = 3 3 3 3
这是 fiddle jsfiddle.net/61cyw2s8
$(document).ready(function() {
//Global Arrays
var player = [];
var comp = [];
//function for RandomInt 1-4
function randomInt() {
return Math.floor(Math.random() * (4 - 1 + 1) + 1);
}
//hover function
function hover(value) {
$("#" + value).addClass("hover");
setTimeout(function() {
$("#" + value).removeClass("hover");
}, 500);
};
//Comp Move
var hoverCount = 0
function addCompMove() {
comp.push(randomInt());
compHover();
}
function compHover() {
setTimeout(function() {
console.log(hoverCount);
hover(comp[hoverCount]);
hoverCount++;
if (hoverCount < comp.length) {
compHover();
}
}, 1000)
playerMove();
};
//Player Move
function playerMove() {
$(".playbox").on("click", function() {
var clickedId = parseInt(this.id);
console.log(clickedId);
player.push(clickedId);
hover(clickedId);
correctMove();
})
}
//Testing
function arrayEqual(arr1, arr2) {
if (arr1.length !== arr2.length) {
return false;
}
for (var i = arr1.length; i > -1; i--) {
if (arr1[i] !== arr2[i])
return false;
}
return true;
};
function correctMove() {
if (arrayEqual(comp, player)) {
hoverCount = 0;
player.length = 0;
addCompMove();
} else {
playerMove();
}
};
//Start
$("#start").bind("click", function() {
addCompMove();
});
});
最佳答案
检查数组是否重复 $.inArray
//Player Move
function playerMove(){
$(".playbox").on("click", function(){
var clickedId = parseInt(this.id);
console.log(clickedId);
if ($.inArray(clickedId, player) == -1){
player.push(clickedId);
}
hover(clickedId);
correctMove();
})
}
关于javascript - 如果 div 单击多次,变量会创建多个输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34198700/