IE中的javascript错误

时间:2011-04-08 10:51:41

标签: javascript internet-explorer

我需要帮助我在IE6 +中收到错误消息。 请注意,代码工作正常。

消息:预期的对象
行:38
Char:4
代码:0
URI:http://localhost/dropbox/panorama/index.php?lang=gr

第38行的实际内容如下:

<script type="text/javascript"> 
    $(document).ready(function(){
        slideShow();
    });
</script> 

第38行是我调用“slideShow()”函数的函数
另请注意,这些功能存储在外部文件中。

这些是外部文件的内容:

$(function slideShow() {
    //Set the opacity of all images to 0
    $('#gallery li').css({opacity: 0.0});

    //Get the first image and display it (set it to full opacity)
    $('#gallery li:first').css({opacity: 1.0});

    //Call the gallery imgGallery to run the slideshow, 5000: 5 seconds interval
    setInterval('imgGallery()',4000);   
});

$(function imgGallery() {
    //Get the first image
    var current = ($('#gallery li.show')?  $('#gallery li.show') : $('#gallery li:first'));

    //Get next image, if reached last image, start over from the first image
    var next = ((current.next().length) ? (current.next()) : $('#gallery li:first'));


    //Set the fade in effect for the next image
    next.css({opacity: 0.0})
        .addClass('show')
        .animate({opacity: 1.0}, 1000);

    //Hide current image
    current.animate({opacity: 0.0}, 1000)
        .removeClass('show');
});

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

尝试将setInterval('imgGallery()',4000);替换为setInterval(imgGallery,4000);
如果这不起作用,则应该: setInterval(function(){imgGallery();},4000)

答案 1 :(得分:1)

您将函数幻灯片放映和imgGallery包装在jQuery对象中。

$(function slideShow(){

}

$(function imgGallery() { 
  ...
});

这意味着它们不会在全球范围内。删除$(),因为它不是必需的。

答案 2 :(得分:0)

IE引用行号的方式并不总是100%,具体取决于文件的包含方式。无论如何评论幻灯片放映功能的所有代码,并查看它是否仍然抛出错误,如果它确实行号实际上指向其他东西。

如果没有,请每次将每行返回1,直到发生错误。

可悲的是,这是我在ie6中了解调试的最佳方式

答案 3 :(得分:0)

Paul Irish的一句话:“setInterval是JERK!”来自Paul Irish:我从jQuery Source中学到的10件事。 http://vimeo.com/12529436

快进到07:40并持续约5分钟。使用setInterval的Intead可以使用setTimeout并调用自身。