2011-11-25 106 views
1

我有以下代码:http://jsfiddle.net/LvdcU/3/我在做这个简单的JavaScript错了什么?

我不明白为什么我不断收到以下错误:

Uncaught ReferenceError: updatetotalorderCals is not defined

我敢肯定,这有一切与我有限的知识JS。

UPDATE:

所以最初的例子错误已经解决,但把它应用到我的现实世界中的代码,错误再次出现时。我已经更新了jsFiddle的所有适用代码:http://jsfiddle.net/LvdcU/8/,(可能比此次更需要),希望能够实现这一目标。谢谢!

+1

修正︰http://jsfiddle.net/LvdcU/4/ – NullUserException

+0

使用“无包装(头)”,而不是“onDomReady” – NullUserException

+0

所以这意味着当我实现真正的版本,我必须将它移动到头部而不是把它包装在一个文件准备好的功能? –

回答

1

这是一个范围问题。你有小提琴设置为onDomReady。如果您查看由小提琴创建的页面的源代码,你会看到:

var VanillaRunOnDomReady = function() { 
    function updatetotalorderCals() { 
     alert("It worked!"); 

    } 
} 

因为你的功能被放置在另一个函数中,它不是功能的外部访问。将其更改为no wrap (head),您将看到它的工作原理。

+0

NullUserException使这个例子基本上相同的答案:http://jsfiddle.net/LvdcU/4 ...我想了解如何将这个答案应用到我的真实世界的应用程序。你能帮我理解如何应用这个,所以我保持适当的范围? –

+0

只是不要把它包装在任何东西中,它会是全球性的,并且工作。 –

+0

我不知道你是否仍然感兴趣,(你已经非常慷慨),但是当我将它应用于我的真实世界代码时,错误又回来了。我认为在缩小规模时做得很好。我在这里添加它:http://jsfiddle.net/LvdcU/7/ –