简单的javascript:“引用错误:'click'未定义”

时间:2014-02-06 07:06:15

标签: javascript function

所以我正在制作一款讽刺性的基于cookie的游戏作为我的第一款JS游戏。

我做了一个JSFiddle。 (图像不会显示,但图像应该是一个赃物,你点击以获得赃物点。)到目前为止我的代码很简单,但我想知道为什么它告诉我我的click()函数是未定义的。它在头部提到,我不知道什么是错的。

http://jsfiddle.net/69mJq/

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;
    }
}        

5 个答案:

答案 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() {...}

看到这个小提琴:http://jsfiddle.net/JohnnyWorker/69mJq/6/

答案 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,你从来没有分配它,所以我把它放在""来承认这一点。

JSFIDDLE:http://jsfiddle.net/69mJq/7/

答案 4 :(得分:0)

我们的代码中存在两个问题

  1. 你错误地分配了
  2. swagAmount + (1 * swagMultiplier) = swagAmount;
    

    应该是

      

    swagAmount = swagAmount +(1 * swagMultiplier);

    1. 您正在将Click事件添加到Game.Load(尽管可能),为了简单起见,我们可以将Click方法添加到Game对象中。
    2. 示例代码

       Game.click = function () {
          swagAmount = swagAmount + (1 * swagMultiplier);
              document.getElementById("swagnumber").innerHTML = swagAmount;
       }
      

      JS小提琴演示DEMO

      注意

      我们需要使用event.preventDefault()

      来停止链接的默认行为