所以,我試圖做一個遊戲Candybox。我確實創建了一個獲取onclick屬性來調用函數的按鈕。按鈕不叫功能
if (AnzahlTP === 10)
{
var para = document.createElement("button");
var node = document.createTextNode("Treuepunkte verschenken");
para.appendChild(node);
var element = document.getElementById("haupt-div");
element.appendChild(para);
var b1 = document.getElementsByTagName("button")[1]; //gibt dem Knopf eine Funktion
var att = document.createAttribute("onclick");
att.value = "TPVerschenken()";
b1.setAttributeNode(att);
}
Button應調用此函數,該函數將打印某些內容到頂部的p-Tag中。
function TPVerschenken()
{
AnzahlTPV = AnzahlTPV + AnzahlTP;
document.getElementById("TPVDisplay").innerHTML = "Verschenkte Treuepunkte: " + AnzahlVTP;
AnzahlTP = 0;
}
但是,如果按下按鈕,該功能不起作用,或不被調用。我檢查了onclick-attribute屬性給了這個按鈕。
這裏是整個代碼,如果需要的話。
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="stylesheet" type="text/css" href="spiel.css"/>
<meta charset="UTF-8">
<title>Test, I guess...</title>
</head>
<body id="body">
<div id="nav">
</div>
<div id="haupt-div">
<p id="TPDisplay"></p>
<p id="TPVDisplay"></p>
<button id="Knopf" onclick="TPSammelnKnopf()">
Anfangen Treuepunkte zu sammeln
</button>
<script>
var TPSammeln = false; //Deklaration von Variablen am Anfang
var AnzahlTP = 0;
var AnzahlTPV = 0;
function TPSammelnKnopf()
{
if (!TPSammeln)
{
AnzahlTP++;
document.getElementById("TPDisplay").innerHTML = "Treuepunkte: " + AnzahlTP; //Damit dort direkt Text steht und er nicht erst erscheinen muss.
setInterval(function()
{
AnzahlTP++;
document.getElementById("TPDisplay").innerHTML = "Treuepunkte: " + AnzahlTP;
if (AnzahlTP === 10)
{
var para = document.createElement("button");
var node = document.createTextNode("Treuepunkte verschenken");
para.appendChild(node);
var element = document.getElementById("haupt-div");
element.appendChild(para);
var b1 = document.getElementsByTagName("button")[1]; //gibt dem Knopf eine Funktion
var att = document.createAttribute("onclick");
att.value = "TPVerschenken()";
b1.setAttributeNode(att);
}
if (AnzahlTP === 80)
{
var para = document.createElement("button");
var node = document.createTextNode("Shop freischalten");
para.appendChild(node);
var element = document.getElementById("haupt-div");
element.appendChild(para);
var b2 = document.getElementsByTagName("button")[2]; //gibt dem Knopf eine Funktion
var att = document.createAttribute("onclick");
att.value = "Shop()";
b2.setAttributeNode(att);
}
}, 1000);
TPSammeln = true;
var parent = document.getElementById("haupt-div");
var child = document.getElementById("Knopf");
parent.removeChild(child);
}
}
function TPVerschenken()
{
AnzahlTPV = AnzahlTPV + AnzahlTP;
document.getElementById("TPVDisplay").innerHTML = "Verschenkte Treuepunkte: " + AnzahlVTP;
AnzahlTP = 0;
}
function Shop()
{
}
</script>
</div>
</body>
</html>
因爲'document.getElementsByTagName(「button」)[1]'返回'undefined'。檢查控制檯是否有錯誤... – Rayon