Глобальная переменная javascript не работает с внешним файлом js
Я объявил следующую переменную вне внешнего 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);
}));
}
1 ответ
Решение
Идет ли тег сценария для внешнего файла js перед var images=...
встроенный тег сценария?
Браузеры выполняют код в том порядке, в котором они их видят, поэтому, если внешний js-файл будет виден первым, он выполнит функцию doSlideShow(), которая может вызвать функцию slideshowFadeIn(), которая будет пытаться ссылаться на несуществующий объект. переменная