我需要帮助我在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');
});
有什么建议吗?
答案 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并调用自身。