0

执行附加到窗口对象的函数时遇到问题:

someLibrary.js

(function($,window){
   var bar = function(config){
      var init = function(){/*...*/};
      return { init:init };
   };
   window.bar = bar;
})(jQuery, window);

somePage.html

<script src="someLibrary.js" ></script>
<...>
<script type="text/javascript">
   var baz = new bar(); //bar is not defined
</script>

我无法使用bar,因为它尚未定义,我是否必须将我的调用包装bar在 a 内$(window).load?我正在尝试做的事情有问题吗?

更新:所有这些代码都在颜色框(不是 iframe)中执行,jQuery 已经加载并且$(window).load已经发生了:(

父页面.html

<head>
   <script src="jquery.js"></script>
   <script src="colorbox.js"></script>
</head>
<html>
   <a href="somepage.html" id="link"/>
   <script type="text/javascript">
      $('#link').colorbox();
   </script>
</html>

我还注意到它只发生在someLibrary.js从不同域调用时:S

谢谢

4

1 回答 1

0

页面上的脚本将按顺序执行,因此 somelib 文件将在调用它的代码之前加载。

它未定义的另一个潜在原因是如果您没有在页面的前面包含 jQuery 脚本。

<script src="jquery.js" ></script>
<script src="someLibrary.js" ></script>
<...>
<script type="text/javascript">
   var baz = new bar(); //bar is not defined
</script>
于 2013-07-04T21:47:43.253 回答