所以我正在制作一款讽刺性的基于cookie的游戏作为我的第一款JS游戏。
我做了一个JSFiddle。 (图像不会显示,但图像应该是一个赃物,你点击以获得赃物点。)到目前为止我的代码很简单,但我想知道为什么它告诉我我的click()函数是未定义的。它在头部提到,我不知道什么是错的。
HTML:
<html>
<head>
<title>Swag Dealr</title>
<script src="swagdealr.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico" />
</head>
<body>
<h3>SWAG DEALR</h3>
<a href="JavaScript:click()"><img src="img/swaghat.png"></a>
<p>grams of swag</p>
<p id="swagnumber"></p>
<p id=></p>
</body>
</html>
JS:
Game={};
Game.Launch = function() {
}
window.onload = function() {
Game.Load();
};
Game.Load = function() {
var swagAmount = 0;
function click() {
swagAmount + (1 * swagMultiplier) = swagAmount;
document.getElementById("swagnumber").innerHTML = swagAmount;
}
}
答案 0 :(得分:2)
Game={};
Game.Load = function() {
var swagAmount = 0;
Game.click(swagAmount);
}
Game.click = function(swagAmount) {
var swagMultiplier= 5
swagAmount = swagAmount + (1 * swagMultiplier) ;
document.getElementById("swagnumber").innerHTML = swagAmount;
}
Game.Load();
我已定义swagMultiplier
并且其工作正常。将href更改为
<a href="Game.click()"><img src="img/swaghat.png"></a>
答案 1 :(得分:1)
如下所述更新您的JS:
Game={};
Game.Launch = function() {
}
window.onload = function() {
Game.Load();
};
Game.Load = function() {
}
var swagAmount = 0;
function click() {
swagAmount = swagAmount + (1 * swagMultiplier);
document.getElementById("swagnumber").innerHTML = swagAmount;
}
注意:有一件事我注意到 swagMultiplier 没有在任何地方定义。
答案 2 :(得分:1)
那是因为你的click()方法包装在一个匿名函数中。将它拖到外面它会起作用:
Game.Load = function() {
var swagAmount = 0;
}
function click() {...}
答案 3 :(得分:1)
简短的回答:你是从Scope获得的。
答案很长:
Game.Load = function() {
var swagAmount = 0;
function click() {
swagAmount = swagAmount + (1 * + "swagMultiplier?");
document.getElementById("swagnumber").innerHTML = swagAmount;
console.log('clicked')
}
window.click = click;
}
你的swagAmount =
被撤消了,因此给了left hand assignment error
什么是swagMultiplier
,你从来没有分配它,所以我把它放在""
来承认这一点。
答案 4 :(得分:0)
我们的代码中存在两个问题
swagAmount + (1 * swagMultiplier) = swagAmount;
应该是
swagAmount = swagAmount +(1 * swagMultiplier);
示例代码
Game.click = function () {
swagAmount = swagAmount + (1 * swagMultiplier);
document.getElementById("swagnumber").innerHTML = swagAmount;
}
JS小提琴演示DEMO
注意:
我们需要使用event.preventDefault()
来停止链接的默认行为