2015-05-09 129 views
0

我想建立一个简单的单页网页应用程序,我卡住了。我试图使用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

感谢。

+0

它看起来像你在加载DOM之前调用函数。在文档准备好之后尝试调用你的函数 –

+0

我尝试使用'$(function(){...})',它是'$(document).ready(function(){...})'的简写。你认为这是问题吗? – SuperManEver

+0

0

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

我没有在“}”和“)之间插入”()“;”在spa对象定义的最后。

+0

由于它几乎是*相同的错误,你认为这可能是解决OP问题的解决方案吗? – dakab