检查是否已加载所有jquery文件,然后运行与之相关的div

时间:2012-07-22 09:59:47

标签: jquery fancybox

如何检查我的所有j查询文件是否已完全加载。

我只想在加载与该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文件完全加载

2 个答案:

答案 0 :(得分:1)

在你的根页面中加载所有其他页面创建一个数组或变量列表,这些变量是特定JQuery页面的标志是否已加载。

写一个例程,不显示任何JQuery CSS容器,直到它们全部加载,并通过使用根页面中的函数设置标志来将数组/变量加载标志设置为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>

可能还有其他方式,但这首先出现在我脑海中。

答案 1 :(得分:0)

好的,你需要一个javascript加载器..你可以使用headjs或modernizr或yepnope。它们具有回调功能,您可以放置​​将在加载某个javascript文件时运行的脚本

www.headjs.com

www.modernizr.com

www.yepnopejs.com