![](/img/trans.png)
[英]How do I alter this function so that only one, random song can be played at a time with each click? (JavaScript)
[英]How can I design a function so that it does different things for each button click
我正在做一个项目,我需要一个按钮来根据按下它的时间来做不同的事情。 我设计了一个function,设置一个变量对应按钮被按下的次数,然后期望代码能正常运行。 不幸的是,当我执行它时,我发现代码是一次性执行的,因为一旦点击更新,它就会连续运行。 这是我试图做的:
function doSomething() {
if (clicks == 1){
//do something
}
if (clicks == 2) {
// do something
}
}
这是完整的程序:
function playGame(){
var games;
if (games < 16){
games += 1;
document.getElementById("weektracker").innerHTML = "Week " + games;
if (teamoverall > 74 && teamoverall < 81){
var x = Math.random();
if (x > 0.8){
randomWin();
}
if (x < 0.8){
randomLoss();
}
}
if (teamoverall > 80 && teamoverall < 86){
var x = Math.random();
if (x > 0.7){
randomWin();
}
if (x < 0.7){
randomLoss();
}
}
if (teamoverall > 85 && teamoverall < 88){
var x = Math.random();
if (x > 0.6){
randomWin();
}
if (x < 0.6){
randomLoss();
}
}
if (teamoverall > 87 && teamoverall < 90){
var x = Math.random();
if (x > 0.5){
randomWin();
}
if (x < 0.5){
randomLoss();
}
}
if (teamoverall > 89 && teamoverall < 93){
var x = Math.random();
if (x > 0.4){
randomWin();
}
if (x < 0.4){
randomLoss();
}
}
if (teamoverall > 92 && teamoverall < 96){
var x = Math.random();
if (x > 0.3){
randomWin();
}
if (x < 0.3){
randomLoss();
}
}
if (teamoverall > 95){
var x = Math.random();
if (x > 0.2){
randomWin();
}
if (x < 0.2){
randomLoss();
}
}
}
if (games == 16){
alert("Week 17" + "\n" + "Bye Week");
games += 1;
}
if (games == 17){
//Decide Playoff Outcome
if (wins < 6){
alert("You did not qualify for the NFL Playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("start").style.display = "block";
document.getElementById("record").style.display = "none";
}
if (wins > 5 && wins < 9){
var a1 = Math.random();
if (a1 > 0.3){
alert("You did not qualify for the NFL Playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("start").style.display = "block";
document.getElementById("record").style.display = "none";
}
if (a1 < 0.3){
games +=1;
alert("You have qualified for the Wild Card Round.");
document.getElementById("weektracker").innerHTML = "Wild Card Round";
var b1 = randomNumber(1,30);
teams.splice(b1,1);
document.getElementById("wildcardteam").innerHTML = teams[b1];
}
}
if (wins > 8 && wins < 11){
var a2 = Math.random();
if (a2 > 0.7){
alert("You did not qualify for the NFL Playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
if (a2 < 0.7){
games +=1;
alert("You have qualified for the Wild Card Round.");
document.getElementById("weektracker").innerHTML = "Wild Card Round";
var b1 = randomNumber(1,30);
teams.splice(b1,1);
document.getElementById("wildcardteam").innerHTML = teams[b1];
}
}
if (wins > 10){
games +=1;
alert("You have qualified for the NFL Playoffs and have a bye in the Wild Card Round");
document.getElementById("weektracker").innerHTML = "Wild Card Round";
var b1 = randomNumber(1,30);
teams.splice(b1,1);
document.getElementById("divisionteam").innerHTML = teams[b1];
document.getElementById("wildcardteam").innerHTML = "Bye";
bye = 1;
}
}
if (games == 18){
if (bye == 0){
var a2 = Math.random();
if (teamoverall < 85){
if (a2 < 0.4){
randomWin();
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
}
if (a2 > 0.4){
randomLoss();
alert("The " + teamname + " have been eliminated from the playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
}
if (teamoverall > 84 && teamoverall < 90){
if (a2 < 0.5){
randomWin();
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
}
if (a2 > 0.5){
randomLoss();
alert("The " + teamname + " have been eliminated from the playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
}
if (teamoverall > 89 && teamoverall < 93){
if (a2 < 0.6){
randomWin();
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
}
if (a2 > 0.6){
randomLoss();
alert("The " + teamname + " have been eliminated from the playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
}
if (teamoverall > 92){
if (a2 < 0.75){
randomWin();
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
}
if (a2 > 0.75){
randomLoss();
alert("The " + teamname + " have been eliminated from the playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
}
}
if (bye == 1){
alert("Bye");
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
}
}
if (games == 19){
alert("yo");
var a3 = Math.random();
if (teamoverall < 85){
if (a3 < 0.3){
randomWin();
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
teams.splice(b2,1);
}
if (a3 > 0.3){
randomLoss();
alert("The " + teamname + " have been eliminated from the playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
}
if (teamoverall > 84 && teamoverall < 90){
if (a3 < 0.45){
randomWin();
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
teams.splice(b2,1);
}
if (a3 > 0.45){
randomLoss();
alert("The " + teamname + " have been eliminated from the playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
}
if (teamoverall > 89 && teamoverall < 93){
if (a3 < 0.55){
randomWin();
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
teams.splice(b2,1);
}
if (a3 > 0.55){
randomLoss();
alert("The " + teamname + " have been eliminated from the playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
}
if (teamoverall > 92){
if (a3 < 0.7){
randomWin();
games += 1;
document.getElementById("weektracker").innerHTML = "Division Round";
var b2 = randomNumber(1,29);
document.getElementById("divisionteam").innerHTML = teams[b2];
teams.splice(b2,1);
}
if (a3 > 0.7){
randomLoss();
alert("The " + teamname + " have been eliminated from the playoffs.");
document.getElementById("weektracker").innerHTML = "Offseason";
document.getElementById("schedule").style.display = "none";
document.getElementById("play").style.display = "none";
document.getElementById("record").style.display = "none";
document.getElementById("start").style.display = "block";
}
}
}
同样,代码只是从“if games == 17”处开始执行而不停止。
我该怎么做才能解决这个问题?
您可以根据需要链接任意多个if/else if
语句:
var games = 1; if (games == 1) { console.log(1); games += 1; } else if (games == 2) { console.log(2); games += 1; } else if (games == 3) { console.log(3); games += 1; }
与if/if
版本相比,这将只打印“1”:
var games = 1; if (games == 1) { console.log(1); games += 1; } if (games == 2) { console.log(2); games += 1; } if (games == 3) { console.log(3); games += 1; }
这将打印“1”、“2”和“3”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.