JQuery ротатор сломан только в IE8 и 9 - PullRequest
0 голосов
/ 30 ноября 2011

Я использую следующий код для создания фейдера изображения JQuery:

function slideSwitch() {
    var $active = $('#slideshow IMG.active');

    if ( $active.length == 0 ) $active = $('#slideshow IMG:last');

    var $next =  $active.next().length ? $active.next()
        : $('#slideshow IMG:first');   

    $active.addClass('last-active');

    $next.css({opacity: 0.0})
        .addClass('active')
        .animate({opacity: 1.0}, 1000, function() {
            $active.removeClass('active last-active');
        });
}

$(function() {
    setInterval( "slideSwitch()", 5000 );
});

Это прекрасно работает во всех браузерах, кроме IE 8 и 9. Я вижу следующие ошибки в IE8:

Object Expected

Object doesn't support this property or method

Эти ошибки относятся к 1-му символу этой строки:

$(function() {
    setInterval( "slideSwitch()", 5000 );
});

Сайт работает в HubSpot CMS. Я звоню JQuery и JS выше в разделе домашней страницы:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://XXXXXXXX.com/Portals/XXXXXXX/js/slider.js"></script>

Ответы [ 3 ]

1 голос
/ 30 ноября 2011

Может быть, IE блокирует файл от ajax.googleapis.com - в IE9, когда на вашей странице нажмите F12 , перейдите на вкладку Сеть, нажмите «Начать захват» и перезагрузите страницу.

Вы должны увидеть такую ​​строку:

Что вы получите в качестве значения Result?

0 голосов
/ 30 ноября 2011

Ошибка пользователя. (Это был мой вопрос)

Я не мог предоставить доступ к самому сайту, потому что он был за паролем, но я попросил друга посмотреть его и:

Был незакрытый условный комментарий, загружающий IE7 CSS прямо перед вызовом скрипта, и другой (правильно закрытый) условный комментарий сразу после вызова скрипта. Большие IE думали, что весь бит предназначен только для 7. Другие браузеры знали лучше.

Все это было бы безумно просто для меня, чтобы поймать в валидаторе кода, но если бы вы когда-нибудь пытались проверить сайт HubSpot, вы бы поняли.

Большое спасибо всем за помощь! Я действительно очень ценю это!

0 голосов
/ 30 ноября 2011

Я проверил это, получил ошибку, используя версию jQuery, которую вы имели, получил ошибку, но затем заменил код следующим образом:

$(function() {
    setInterval(function(){slideSwitch()}, 5000);
});

Это тогда не получило ошибку для меня: http://jsfiddle.net/RFTxE/1/

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