尝试从JS创建新的可点击的html元素失败了

时间:2017-04-15 21:53:46

标签: javascript html function onclick

好的,我试图用HTML创建一个游戏,但我已经在这段代码中遇到了障碍:

编辑:以下内容发生在<script>代码中。

var c = document.createElement("button");
                c.innerHTML = "Explore";
                c.id = "explore";
                c.onclick = "explore()";
                para.appendChild(c);

执行上面的代码时,会创建一个显示&#34; Explore&#34;的<button>元素,但点击后,它不会运行explore()功能。请帮忙。

注意:para是指<div>元素。

我还将完整代码作为代码段包含在内,因为它很简短,用于测试目的。

&#13;
&#13;
<!DOCTYPE html>
<html>
	<head>
		
	</head>
	<body>
		<div id="buttons">
			<button id="bgn", onclick="begin()">BEGIN</button>
		</div>
		<script>
			var name;
			var maxHp=10;
			var hp=10;
			var lvl=1;
			var exp=0;
			var dmg=1;
			var mp=5;
			var equip=[null,null,null,null];
			var inven=[];
			var skills=[];
			var spells=[];
			
			function begin() {
				var q = confirm("Are you sure?");
				if(q) {
					naming();
				}
			};
			function naming() {
				var q = prompt("What is your name","");
				if(q!==null) {
					name=q;
					alert("Ok, I'll call you "+name+"!");
					var para=document.getElementById("buttons");
					var child=document.getElementById("bgn");
					para.removeChild(child);
					
					var c = document.createElement("button");
					c.innerHTML = "Explore";
					c.id = "explore";
					c.onclick = "explore()";
					para.appendChild(c);
				}
			}
			function explore() {
				alert("You have explored!");
			}
		</script>
	</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您的c.onclick被分配给字符串而不是函数。试试这样:

var c = document.createElement("button");
            c.innerHTML = "Explore";
            c.id = "explore";
            c.onclick = explore;
            para.appendChild(c);