私はこの単純なjavascriptで何が間違っているのですか?

I have the following code: http://jsfiddle.net/LvdcU/3/

なぜ次のエラーが出るのか分かりません:

Uncaught ReferenceError:updatetotalorderCalsが定義されていません

私はこれが私の限られたjs知識と関係があると確信しています。

更新:

元の例のエラーは解決されましたが、実際のコードに適用するとエラーが返されます。 jsFiddleを該当するコードで更新しました: http://jsfiddle.net/LvdcU/8/、(おそらく今度は必要以上に)この作業を期待しています。ありがとう!

1
修正済み: jsfiddle.net/LvdcU/4
追加された 著者 NullUserException,
"onDomReady"ではなく "no wrap(head)"を使用してください。
追加された 著者 NullUserException,
つまり、実際のバージョンを実装すると、それを頭に動かして、ドキュメントの準備機能でラップしなくてはなりませんか?
追加された 著者 Michael Davis,

1 答え

スコープの問題です。あなたは onDomReady に設定されたフィドルを持っています。フィドルによって作成されたページのソースを表示すると、次のように表示されます。

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

    }
}

関数は別の関数内に配置されているため、その関数の外部ではアクセスできません。それを折り返し(head)なしに変更すると、それが動作することがわかります。

1
追加された
それを何かに包んではいけません。それはグローバルで仕事になるでしょう。
追加された 著者 James Montagne,
var total は新しい変数を作成することを意味します。まだ存在しない変数には追加できません。
追加された 著者 James Montagne,
また、フィドルのjavascriptセクションから <script> タグを削除する必要があります。
追加された 著者 James Montagne,
NullUserExceptionは基本的に同じ答えの例です: jsfiddle.net/LvdcU/4 ...私の実際の世界のアプリケーションにこの答えを適用する方法を理解しようとしています。これを適用する方法を理解するのを手助けして、適切な範囲を維持してください。
追加された 著者 Michael Davis,
私はあなたがまだ興味があるかどうかは分かりませんが(あなたはすでにとても寛大でしたが)、これを私の現実世界のコードに適用すると、エラーに戻ります。私はそれをスケールダウンしたときに私は良い仕事をしたと思った。私はそれをここに追加しました: jsfiddle.net/LvdcU/7
追加された 著者 Michael Davis,
そのアドバイスをありがとう、私はそれが間違っている方法を見ることができます(それは私の経験の欠如が表示されます)...しかし、あなたのために問題を解決するのですか?私はまだエラーが表示されています:Uncaught ReferenceError:updatetotalorderCalsが定義されていません
追加された 著者 Michael Davis,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript