2013-05-02 44 views
1

我在我的WordPress框架中使用了WooThemes Flexslider 2插件。
下面是代碼:Flexslider 2,如何加載(文檔).ready函數

$(window).load(function() { 
    $('#flexslider-<?php echo $postid; ?>').flexslider({ 
     smoothHeight: true, 
     slideshow:  false, 
     start: function(slider) { 
      slider.container.click(function(e) { 
       if(slider.animating) { 
        // action 
       } else { 
        slider.flexAnimate(slider.getTarget('next')); 
       } 
      }); 
     } 
    }); 
}); 

的腳本「$(窗口).load(函數(){」

行之有效如果我改變「$(窗口).load(函數(){「」$(document).ready(function(){「」滑塊不起作用。在Safari中,腳本加載成功,但沒有獲得當前圖像高度。腳本與「$(document).ready(function(){」 on all browsers?

謝謝

+0

'該腳本運行良好「$(窗口).load(函數(){」'那麼你爲什麼要改變,要'document.ready' .. – bipen 2013-05-02 09:53:53

+1

因爲使用「$(window).load(function(){」用戶在所有其他腳本100%加載並且加載最後一次後無法使用滑塊。 (function(){「滑塊與所有其他腳本同時加載,這是jquery的強大功能。 – DesignPuma 2013-05-02 10:01:05

+0

另一個不使用'$(window).load(function(){'的原因是它與mediaelement IOS。 – yitwail 2014-01-14 13:51:18

回答

1

您可以編寫一個間隔函數,查看$('#flexslider-<?php echo $postid; ?>')元素中的第一個圖像。一旦完成加載,請調用flexslider函數。

這是給你一個提示,沒有測試:

$(document).ready(function(){ 
    var firstImage = $('#flexslider-<?php echo $postid; ?>').find('img').filter(':first'), 
     checkforloaded = setInterval(function() { 
      var image = firstImage.get(0); 
      if (image.complete || image.readyState == 'complete' || image.readyState == 4) { 
       clearInterval(checkforloaded); 
       $('#flexslider-<?php echo $postid; ?>').flexslider({ 
        // your options 
       }); 
      } 

     }, 20); 

}); 
+0

It works,thanks! – DesignPuma 2013-05-02 13:47:50

+0

這是解決未解決的媒體問題的解決方法問題:https://github.com/johndyer/mediaelement/issues/916 – yitwail 2014-01-14 13:55:12