2012-05-09 71 views
0

我正在使用一個Javascript照片查看器插件(這裏 - > http://www.photoswipe.com/)。我想要在用戶在圖片上滑動時動態更新插件附加到的照片。動態加載圖像分成javascript函數

我有一個Javascript對象(我用的是Joose框架)是負責更新它是一個基於Ajax調用PHP腳本來解析圖像元素的結果屬性。

這裏是我的代碼:

<script> 
    (function(window, PhotoSwipe){ 

     domInjector = new DOMInjector(); 
     domInjector.init(); 

     document.addEventListener('DOMContentLoaded', function(){ 

      var options = { 
       preventHide: true, 
       getImageSource: function(obj) 
       { 
        return obj.url; 
       }, 

       getImageCaption: function(obj) 
       { 
        return obj.caption; 
       } 
      }, 

      instance = PhotoSwipe.attach(
      [ 
       domInjector.output 
      ], 

      options 

      ); 

      instance.show(0); 

    }, false); 


}(window, window.Code.PhotoSwipe)); 

domInjector.output應該是這個樣子 - > 網址:{url: ' 「+ this.masterObject.elementArray [1] .imageLink +」',標題:「圖像001' }

其中this.masterObject.elementArray [1] .imageLink是圖像的URL。

但是......因爲AJAX功能需要一定的時間來完成domInjector.output是空的幾秒鐘,並沒有任何元素的圖像刷卡插件!

我的代碼的其餘部分是好的,所有的工作確定。我只是不知道如何在ajax函數完成後注入更新的domInjector.output?

對不起,這個人是很難解釋。任何幫助將是偉大的,但。

+0

我可以對事件偵聽器做些什麼嗎? –

回答

1

相反的處理程序中document.DOMContentLoaded事件中實例化PhotoSwipe插件,我認爲你需要做的是在處理程序爲您從DOMInjector級防火一旦你的Ajax調用已成功返回的事件。您也可以考慮將回調函數作爲參數傳遞給DOMInjector類,並在Ajax調用返回時執行該參數。無論哪種方式,當您實例化PhotoSwipe時,該調用的輸出將可用。

+0

好的計劃,我可以通過調用一個正常的功能來做到這一點嗎?當我回家的時候,我今晚會去一趟 –

+1

你可以將一個回調函數傳遞到你的DOMInjector類中,當Ajax調用返回並實例化你的插件時,它將執行它。 –

+0

破解它。謝謝 –