2012-12-20 66 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> 

现在一切工作正常。

相关问题