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内にラップする必要があり$(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 ファイルはそれを呼び出すコードの前に読み込まれます。

未定義になるもう 1 つの潜在的な理由は、ページの前半で 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 に答える