无法理解为什么我的功能不是一个功能?

时间:2015-05-09 16:29:14

标签: javascript jquery single-page-application

我正在尝试构建一个简单的单页Web应用程序而且我被卡住了。我正在尝试使用module pattern

var spa = (function () {
    var initModule = function( $container ) {
        $container.html(
            '<h1 style="display:inline-block; margin: 25px;">'
                + 'hello world!'
            + '</h1>'
        );
    };

    return { initModule: initModule };
})();   

理论上应该在这里引用:

<!doctype html>
<html>
<head>
    <title>SPA Starter</title>

    <!-- stylesheets -->
    <link rel="stylesheet" type="text/css" href="css/spa.css" />
    <link rel="stylesheet" type="text/css" href="css/spa.shell.css" />

    <!-- third-party javascript -->
    <script src="js/jq/jquery-1.11.3.js">        </script>
    <script src="js/jq/jquery.uriAnchor-1.1.3.js"</script>

    <!-- my Javascript -->
    <script src="js/spa.js">      </script>
    <script src="js/spa.shell.js"></script>
    <script>

        $(function() { spa.initModule( $('#spa') ); });

    </script>
</head>
<body>
    <div id="spa"></div>
</body>
</html>

我尝试在控制台中执行spa.initModule( $('#spa') );并且它正常工作,但在我的代码中却没有。

当我尝试跑步时,我得到Uncaught TypeError: spa.initModule is not a function

提前致谢。

2 个答案:

答案 0 :(得分:2)

http://jsfiddle.net/AlexeiTruhin/4rg0mdgb/ - 适合我。

这意味着您有错误,例如在声明脚本时:

<script src="js/jq/jquery.uriAnchor-1.1.3.js"</script>

关闭&lt;脚本..&gt;

答案 1 :(得分:0)

好吧,我遇到了同样的错误,但原因不同

我没有插入&#34;()&#34;介于&#34;}&#34;和&#34;);&#34;在spa对象定义的最后位置。