jquery .next *?*问题

时间:2011-06-02 16:38:51

标签: jquery internet-explorer-8 internet-explorer-7

基本上得到的这段代码在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中正常工作

Mucho reveiato!

2 个答案:

答案 0 :(得分:1)

尝试替换(2个地方)

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

使用:

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

从doSlideshow中删除:

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

并改变:

clearTimeout(thistimeout);

要:

clearInterval(thistimeout);

如果有帮助,请告诉我。

答案 1 :(得分:0)

看起来IE 8根本没有运行doSlideshow功能。

这是一个很长的镜头,但你在javascript中缺少几个分号。我之前看到IE对这种东西敏感,但是我说,这是一个触及范围。

修复两行不以分号结尾的行。

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

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