0

すべてのjQueryファイルが完全にロードされているかどうかを確認する方法。

そのdivに関連するすべてのjQueryファイルがロードされたときにのみdivを表示したいと思います。

ドキュメント準備完了およびウィンドウロード機能が機能しません。

すべてのjQueryがロードされているかどうかを確認してdivを表示できる条件付き関数を作成する方法...外部のjsファイルですべてのjQueryファイルを呼び出しています(基本的に、クライアント用のプラグインを作成しようとしています)私のexternal.jsファイルは私のサーバーからリモートで機能します)。

私のexternal.jsファイルは次のようになります:

   if (typeof jQuery === "undefined") {
   var script = document.createElement('script');
   script.src = 'js/jquery-1.7.1.min.js';
   script.type = 'text/javascript';
   document.getElementsByTagName('head')[0].appendChild(script);

   }

  if (typeof jQuery === "undefined") {
  var script = document.createElement('script');
  script.src = 'js/fancybox.js';
  script.type = 'text/javascript';
  document.getElementsByTagName('head')[0].appendChild(script);
 }

 document.ready = function() {
 $(document).ready(function(){

   $("#addimage").html("<a id='fancybox' href='large"+clientID+".jpg'><img border=0 src='thumb"+clientID+".jpg'/></a>");

 }
 });

したがって、このaddimage divを機能させたいのは、jqueryファイルのみが完全にロードされるためです。

4

2 に答える 2

1

他のすべてのページをロードするルートページで、特定のJQueryページへのフラグである配列または変数のリストがロードされるかどうかを作成します。

すべてがロードされるまでJQueryCSSコンテナーを表示しないルーチンを作成し、ルートページの関数を使用してフラグを設定することにより、配列/変数がロードされたフラグをtrueに設定します。

したがって、ルートページには次のものがあります。

   <script>
   $JQueryPage1Ready = false;
   $JQueryPage2Ready = false;
   $JQueryPage3Ready = false;

   // Your JQuery loaded pages have javascript within them to call this function
   function setJQueryPageToReady($PageNo)
   {
       switch ($PageNo)
       {
       case 1: $JQueryPage1Ready = true; break;
       case 2: $JQueryPage2Ready = true; break;
       case 3: $JQueryPage3Ready = true; break;
       }

       // Check all pages are loaded
       if ($JQueryPage1Ready && JQueryPage2Ready && JQueryPage3Ready)
       {
           $("JQueryPage1Container").show(1000);
           $("JQueryPage2Container").show(1000);
           $("JQueryPage3Container").show(1000);
       }
   }
   <script>

JQueryがページ1をロードしました

   <script>
       setJQueryPageToReady(1);
   <script>

JQueryがページ2をロード

   <script>
       setJQueryPageToReady(2);
   <script>

JQueryがページ3をロード

   <script>
       setJQueryPageToReady(3);
   <script>

他の方法もあるかもしれませんが、これが最初に私の頭に浮かんだものです。

于 2012-07-22T10:09:10.207 に答える
0

わかりました。javascriptローダーが必要です。headjs、modernizr、yepnopeを使用できます。それらには、特定のjavascriptファイルがすでにロードされているときに実行されるスクリプトを配置できるコールバック機能があります

www.headjs.com

www.modernizr.com

www.yepnopejs.com

于 2012-07-22T10:06:03.117 に答える