我在外部js文件之外声明了以下变量,因为它的一部分是在服务器端生成的。
<script type="text/javascript">
var images=new Array(<%= Master.slideshowArray %>);
</script>
出于某种原因,通过从外部js文件(下面)中删除它,幻灯片显示不再有效...我猜我已经将它声明为全局变量或者可能还有其他我需要声明的内容全球......任何想法?
var nextimage=0;
doSlideshow();
function doSlideshow()
{
if($('.backgroundImage').length!=0)
{
$('.backgroundImage').fadeOut(500,function(){slideshowFadeIn();$(this).remove();});
}
else
{
slideshowFadeIn();
}
}
function slideshowFadeIn()
{
if(nextimage>=images.length)
nextimage=0;
$('.homeLeadContent').prepend($('<img class="backgroundImage" src="'+images[nextimage++]+'" style="display:none;">').fadeIn(500,function() {
setTimeout(doSlideshow,1000);
}));
}
答案 0 :(得分:1)
外部js文件的脚本标记是否位于var images=...
内联脚本标记之前?
浏览器按照它们看到的顺序执行代码,因此如果首先看到外部js文件,它将执行doSlideShow()函数,该函数可以调用slideshowFadeIn(),该函数将尝试并引用不存在的 - at-that-point图像变量。