执行我附加到窗口对象的函数时遇到问题:
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
内打电话给$(window).load
?
我想要做的事情有问题吗?
更新:所有这些代码都在colorbox(而不是iframe)中执行,jQuery已经加载并且$(window).load
已经发生:(
parentPage.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
由于
答案 0 :(得分: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>