jQuery定时重复幻灯片放映

jQuery定时重复幻灯片放映,jquery,timer,slideshow,Jquery,Timer,Slideshow,下面的代码将第一张图片正确地交换到第二张图片,但不会继续到3和4并重新开始 = function () { var $active = $('#challengeTwoImageJq .carouselImagejQueryActive'); var $next = ($('#challengeTwoImageJq .carouselImagejQueryActive').next().length > 0) ? $('#challengeTwoImageJq .caro

下面的代码将第一张图片正确地交换到第二张图片,但不会继续到3和4并重新开始

= function () {

    var $active = $('#challengeTwoImageJq .carouselImagejQueryActive');
    var $next = ($('#challengeTwoImageJq .carouselImagejQueryActive').next().length > 0) ? $('#challengeTwoImageJq .carouselImagejQueryActive').next() : $('#challengeTwoImageJq img:first');
    timer = setInterval(function () {

        $active.removeClass('carouselImagejQueryActive');
        $next.fadeIn().addClass('carouselImagejQueryActive');

    }, 3000);


    timer = setInterval('challengeTwoJquery()', 3000);

}
HTML


如果您只是想让它们显示/循环,您可以执行以下操作:

function runem() {
    var allofEm = $('#challengeTwoImageJq img');
    var $active = allofEm.eq(0);
    $active.show();
    var $next = $active.next();
    var timer = setInterval(function() {
        $next.fadeIn();
        $active.hide();
        $active = $next;
        $next = (allofEm.last().index() == allofEm.index($active)) ?
            $next = allofEm.eq(0):$active.next();

    }, 3000);
}
runem();
不过,您可能可以将其简化一些。你不需要这个函数,除非你真的想要它

编辑:为了清楚起见,我在开始时假设这个CSS:

#challengeTwoImageJq img {display:none;}

请参见此处的操作:

如果您只想让它们显示/循环,您可以执行以下操作:

function runem() {
    var allofEm = $('#challengeTwoImageJq img');
    var $active = allofEm.eq(0);
    $active.show();
    var $next = $active.next();
    var timer = setInterval(function() {
        $next.fadeIn();
        $active.hide();
        $active = $next;
        $next = (allofEm.last().index() == allofEm.index($active)) ?
            $next = allofEm.eq(0):$active.next();

    }, 3000);
}
runem();
不过,您可能可以将其简化一些。你不需要这个函数,除非你真的想要它

编辑:为了清楚起见,我在开始时假设这个CSS:

#challengeTwoImageJq img {display:none;}

查看此处的操作:

仅查看不带标记的代码,我怀疑此处存在重复Id。据我所知,函数运行一次,然后停止。我怎么才能让它循环呢?只要看看没有标记的代码,我怀疑这里有重复的Id。据我所知,函数运行一次,然后停止。我怎样才能让它循环呢?我测试它只是为了看看,但它对我不起作用。但我更愿意坚持我最初的想法,只是想弄明白为什么它不会循环。Thanks@CUDA-您原来拥有的不起作用。这是因为它取消了类的设置,并且从不将$active或$next变量重置为新值—我的代码就是这样做的。如果需要添加/删除该类,可以在我的代码中设置$active和$next时执行该操作……我已经让它工作了!我意识到我做错了什么。谢谢你,马克。你让我朝着正确的方向看,我测试了一下,只是为了看看,但它对我不起作用。但我更愿意坚持我最初的想法,只是想弄明白为什么它不会循环。Thanks@CUDA-您原来拥有的不起作用。这是因为它取消了类的设置,并且从不将$active或$next变量重置为新值—我的代码就是这样做的。如果需要添加/删除该类,可以在我的代码中设置$active和$next时执行该操作……我已经让它工作了!我意识到我做错了什么。谢谢你,马克。你让我看到了正确的方向