2012-12-20 65 views
1

我在IE8中遇到錯誤:Object doesn't support this property or method但是其他瀏覽器中的所有工作都沒有問題。當IE刷新時,錯誤消失,幻燈片正常顯示。對象不支持此屬性或方法IE8

這是代碼。

$(window).load(function(){ 
    $('.flexslider').flexslider({ 
    animation: "slide", 
    start: function(slider){ 
     $('body').removeClass('loading'); 
    } 
    }); 
}); 

導致錯誤的線是$('.flexslider').flexslider({

我已經試過各種解決方案都無濟於事。有什麼建議麼?

+2

你試過'$(document).ready()'嗎? – kapa

+2

看起來像'flexslider'插件沒有正確加載。 –

+0

jQuery絕對是在flexslider js之前加載的嗎?你也在你的頁面上運行任何其他的JS庫嗎?如果是這樣的話,可能與$運算符有衝突。 –

回答

0
$(function() { 
    $(window).load(function() { 
     $('.flexslider').flexslider({ 
      animation: "slide", 
      start: function(slider){ 
      $('body').removeClass('loading'); 
     } 
    }); 
}); 

這使用jQuery.ready(),它比$(window).load()跨瀏覽器更可靠。實際上,你可以完全替換$(window).load()(如果你不需要等待圖像等)。

$(function() { 
    $('.flexslider').flexslider({ 
     animation: "slide", 
     start: function(slider){ 
     $('body').removeClass('loading') 
    } 
}); 

此外,請確保包含flexslider的腳本包含在頁面的「head」部分。如果您將它包含在主體中或通過創建DOM節點來加載它,則加載和準備都不會保證它已被執行。

+1

但是爲什麼你仍然在那裏留下'$(window).load()'? :) – kapa

+0

也許'window.load'是必需的,以確保在代碼初始化之前加載所有圖像。無論哪種方式,它都不會傷害任何東西。 – Sparky

+0

好點...你的評論來了,因爲我正在編輯答案:) –

1

找到答案,它不在我發佈的代碼行中。我用

<script defer src="scripts/jquery.flexslider.js"></script> 

加載腳本,我把它改成

<script src="scripts/jquery.flexslider.js"></script> 

現在一切工作正常。

相關問題