ошибка JavaScript в IE - PullRequest
       1

ошибка JavaScript в IE

0 голосов
/ 08 апреля 2011

Мне нужна помощь с сообщением об ошибке, которое я получаю в IE6 +.Обратите внимание, что код работает нормально.

Сообщение: ожидается объектЛиния: 38Чар: 4Код: 0URI: 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 ]

1 голос
/ 08 апреля 2011

Вы обернули слайд-шоу функций и imgGallery внутри объекта jQuery.

$(function slideShow(){

}

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

Это означает, что они не будут в глобальной области видимости. Удалите $ (), поскольку это не обязательно.

1 голос
/ 08 апреля 2011

попробуйте заменить setInterval('imgGallery()',4000); на setInterval(imgGallery,4000);
Если это не работает, это должно:
setInterval(function(){imgGallery();},4000)

0 голосов
/ 08 апреля 2011

Цитата из Пола Айриша: "setInterval - это ДЕРЬМО !!"от Пола Айриша: 10 вещей, которые я узнал из источника jQuery.http://vimeo.com/12529436

Перемотка вперед до 07:40 и длится около 5 минут.Вместо использования setInterval вы можете использовать setTimeout и вызывать себя.

0 голосов
/ 08 апреля 2011

То, как IE ссылается на номера строк, не всегда на 100% в зависимости от того, как / если файл включен. Независимо от комментария весь код из функции слайд-шоу, и посмотреть, если он по-прежнему выдает ошибку, если он делает номер строки на самом деле указывает на что-то еще.

Если этого не произойдет, возвращайте каждую строку по 1 за раз, пока не произойдет ошибка.

К сожалению, это лучший способ отладки в ie6

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...