gpt4 book ai didi

javascript - 如果 div 多次单击,变量会创建多个输入吗?

转载 作者:行者123 更新时间:2023-11-29 21:38:18 25 4
gpt4 key购买 nike

我想不通。发生的事情是,当我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com