2011-11-25 104 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/ –