0

名前空間内にいくつかの機能を持つ 2 つの JavaScript ファイルがあります。しかし、メイン ページからこの関数を呼び出そうとすると、「オブジェクト # にはメソッド 'LoadAllBooks' がありません」というエラーがスローされます... しかし、namespace.function を使用して関数を呼び出しました。

JavaScript ファイル Util.js のコードは次のとおりです。

var myNameSpace = {
    Book: function (author, title, URL) {
        this.author = author;
        this.title = title;
        this.URL = URL;
    },
    LoadAllBooks: function (metadata, attachPoint) {
        Some Code--
    },
    arr: [],
    oneBook: {}
};

上記の関数 LoadAllBooks は、以下に示すように、html ホームページから呼び出されます。

<script>
    var attachpoint = document.querySelector('.buttonAttachPoint');
    $(document).on('load',myNameSpace.LoadAllBooks("ajax/metadata.json",this.attachpoint));
</script>

これがエラーを出す理由を教えてください。

4

1 に答える 1

0

内のコードは構文的にUtil.jsは問題ないようです。ただし、呼び出しコードにはさまざまな問題があります。

jQuery を使用していると仮定すると、次のようなものが必要です。

//Specify some code to be ran when the document is ready using the $ function
//This could have been done like this also $(document).ready(function () {});
$(function () {
    //Notice that the following line is inide the document ready handler.
    //Always make sure that the code that manipulates DOM nodes is executed only
    //when the document is ready.
    var attachPoint = document.querySelector('.buttonAttachPoint');

    myNameSpace.LoadAllBooks('ajax/metadata.json', attachPoint);
});

于 2013-03-28T02:45:07.590 に答える