jquery .следующий *? * выпуск - PullRequest
0 голосов
/ 02 июня 2011

в основном получил этот бит кода, который не работает в ie8 и ниже.

Автоматическое изменение затухает в текущем блоке текста, но не исчезает в новом, что заставляет меня думать, что это .next (), который воспроизводится, так как нажатие чисел (функция .click) работает нормально.

JQuery:

function doSlideshow() {
    if ($('.image_links a.selected').attr("rel") == "five") {
        the = $('.image_links a:first');
    } else {
        the = $('.image_links a.selected').next('a');
    }
    $('.image_links a.selected').removeClass("selected");
    $(the).addClass("selected");
    var theNum = $(the).attr("rel");
    $('.image_area .images img:not(.visible)').removeClass().addClass("reset");
    $('.image_area .images img#' + theNum).removeClass().addClass("que");
    $('.image_area .images img.visible').fadeOut(500, function() {
        $('.image_area .images img.visible').removeClass().attr("style", "display:block;").addClass("reset");
        $('.image_area .images img.que').removeClass("que").addClass("visible")
    });
    $('.image_area .content .text').fadeOut();
    $('.image_area .content .text.' + theNum).fadeIn();
    thistimeout = setTimeout('doSlideshow()', 6000);
    return false;
}
$(function() {
    thistimeout = setTimeout('doSlideshow()', 6000);
    $('.image_area .images img').removeClass().addClass("reset");
    $('.image_area .images img#one').removeClass().addClass("visible");
    $('.image_links a').click(function() {
        clearTimeout(thistimeout);
        if ($(this).hasClass("selected")) {
            return false;
        }
        $('.image_links a.selected').removeClass("selected");
        $(this).addClass("selected");
        var theNum = $(this).attr("rel");
        $('.image_area .content .text').fadeOut();
        $('.image_area .content .text.' + theNum).fadeIn();
        $('.image_area .images img:not(.visible)').removeClass().addClass("reset");
        $('.image_area .images img#' + theNum).removeClass().addClass("que");
        $('.image_area .images img.visible').fadeOut(500, function() {
            $('.image_area .images img.visible').removeClass().attr("style", "display:block;").addClass("reset");
            $('.image_area .images img.que').removeClass("que").addClass("visible")
        });
        thistimeout = setTimeout('doSlideshow()', 6000);
        return false;
    });
});

Вот ссылка: http://b2j3new.zen -host.com Зона поражения - главный изменитель изображения. Прекрасно работает в webkit / gecko

Мучо благодарю!

Ответы [ 2 ]

1 голос
/ 02 июня 2011

Попробуйте заменить (2 места)

thistimeout = setTimeout('doSlideshow()', 6000);

на:

thistimeout = setInterval(function() {doSlideshow();}, 6000);

Удалить из doSlideshow:

thistimeout = setTimeout('doSlideshow()', 6000);

И изменить:

clearTimeout(thistimeout);

Кому:

clearInterval(thistimeout);

Дайте мне знать, если это поможет.

0 голосов
/ 02 июня 2011

Похоже, что IE 8 не запускает функцию doSlideshow.

Это длинный выстрел, но вы пропустили пару точек с запятой в javascript. Раньше я чувствовал, что IE чувствителен к такого рода вещам, но, как я и сказал, это уже достижимо.

Исправьте две строки, которые не заканчиваются точкой с запятой.

$('.image_area .images img.que').removeClass("que").addClass("visible")

$('.image_area .images img.que').removeClass("que").addClass("visible")
...