2013-06-27 33 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