[英]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.