2013-06-27 37 views
0

我一直在玩弄一些jQuery和从文件加载HTML,并遇到麻烦。基本上,我想在网页中提取的URL参数,加载对应于data.html一个文件,其中数据是gallery参数值,然后注入存储内部data.html到的div slider的HTML,然后有NivoSlider(一个jQuery画廊)钩到那个画廊。jQuery/AJAX HTML注入和图库插件

一切工作正常 - 参数被发现,该文件被加载,HTML改变(根据萤火虫)。但画廊只是坐在那里闲置,就像它认为没有HTML被改变一样。

这里是我的Jquery:

//With respect to http://www.jquery4u.com/snippets/url-parameters-jquery/ 
    $.urlParam = function(name){ 
     var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
      if (!results) { return 0; } 
      return results[1] || 0;  
     } 
    $(window).load(function() { 
     //Attempt to extract the parameter for gallery. 
     var album = $.urlParam('gallery'); 
     var path = album+ ".html"; 
     //Is this legit? 
     if(album != 0){ 
      //Kick into loading the gallery. 
      $("#slider").load(path); 
      //Load the gallery? 
      $('#slider').nivoSlider({ 
       effect: 'fade', 
       animSpeed:0, 
       directionNav: true 
      }); 
     }else{ 
      path = "a.html"; //Reset path. 
      $("#slider").load(path); //Load. 
      //Load gallery 
      $('#slider').nivoSlider({ 
       effect: 'fade', 
       animSpeed:0, 
       directionNav: true 
      }); 

     }  
    }); 

和HTML文件一样简单:

<img src="a/img1.jpg" alt=""/> 
<img src="a/img2.jpg" alt=""/> 

我需要刷新页面什么的?我在一个本地主机web服务器内部完成了这个工作,所以我知道AJAX请求正常工作,并且firebug确认HTML已被正确注入。

有什么想法?提前致谢!

+0

而且您确定您的图像路径在脚本位于服务器上的位置方面是正确的,而且这些iamges位于? – KyleK

+0

animSpeed:0可能会阻止发生转换。如果将它设置为500,你是否仍然有这个问题? –

+0

@redneckjedi改变了animSpeed,但没有解决它。 – Singular1ty

回答

4

也许你不得不等待,直到您设置滑块之前的AJAX请求完成。

$("#slider").load(path, function(){ 
     //Load the gallery? 
     $('#slider').nivoSlider({ 
      effect: 'fade', 
      animSpeed:0, 
      directionNav: true 
     }); 
    }); 
+0

啊!你是个天才!非常感谢,立即修复!我用Ajax做了两件事,所以我仍然不喜欢它。非常感谢! – Singular1ty