Jquery 幻灯片放映在最后一张图像后停止

Jquery 幻灯片放映在最后一张图像后停止,jquery,html,css,slideshow,Jquery,Html,Css,Slideshow,我的幻灯片可以工作,但是当到达最后一个图像时,它会停留在那里,不会继续,当我刷新页面时,它会再次从第一个图像开始工作,直到到达最后一个图像为止 HTML: Jquery: function slideSwitch() { var $slider_active = $('div.slider IMG.slider_active'); var $next = $slider_active.next(); $next.addClass('sli

我的幻灯片可以工作,但是当到达最后一个图像时,它会停留在那里,不会继续,当我刷新页面时,它会再次从第一个图像开始工作,直到到达最后一个图像为止

HTML:

Jquery:

function slideSwitch() {
        var $slider_active = $('div.slider IMG.slider_active');
        var $next = $slider_active.next();    

        $next.addClass('slider_active');

        $active.removeClass('slider_active');
    }

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

有人知道为什么它会在最后一张图片处停止而不会继续吗?提前感谢。

它在最后一个图像处停止,因为例程试图获取
.next()
元素,而该元素不在那里

您需要添加一个检查以查看
$next
是否确实存在,如果不存在,则返回开始。比如:

function slideSwitch() {
    var $slider_active = $('div.slider IMG.slider_active');
    var $next = $slider_active.next();    

    if(!$next) {
        $next = $('div.slider IMG')[0];
    }

    $next.addClass('slider_active');

    $slider_active.removeClass('slider_active');
}

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

它在最后一个图像处停止,因为例程试图获取
.next()
元素,而该元素不在那里

您需要添加一个检查以查看
$next
是否确实存在,如果不存在,则返回开始。比如:

function slideSwitch() {
    var $slider_active = $('div.slider IMG.slider_active');
    var $next = $slider_active.next();    

    if(!$next) {
        $next = $('div.slider IMG')[0];
    }

    $next.addClass('slider_active');

    $slider_active.removeClass('slider_active');
}

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

只要将$next变量指向第一个图像,就可以了

替换
var$next=$slider_active.next()带有

var $next =  $slider_active.next().length ? $slider_active.next() : $('div.slider IMG:first');

只要将$next变量指向第一个图像,就可以了

替换
var$next=$slider_active.next()带有

var $next =  $slider_active.next().length ? $slider_active.next() : $('div.slider IMG:first');

您未使用代码中的$active对象。如果删除class.slider\u active并进行一次更正如果希望所有浏览器都支持,则setInterval仅适用于mozila

setInterval(slideSwitch, 5000 );
只用

$('.slider_active').removeClass('slider_active');
你的密码是

function slideSwitch() {
        var $slider_active = $('div.slider IMG.slider_active');
        var $next = $slider_active.next();  
        $('.slider_active').removeClass('slider_active');
        $next.addClass('slider_active');
        if($next.length == 0){  // for cyclic rotation
         $('div.slider IMG:eq(0)').addClass('slider_active');
        }
 }
$(function() {
    setInterval(slideSwitch, 5000);
});

您未使用代码中的$active对象。如果删除class.slider\u active并进行一次更正如果希望所有浏览器都支持,则setInterval仅适用于mozila

setInterval(slideSwitch, 5000 );
只用

$('.slider_active').removeClass('slider_active');
你的密码是

function slideSwitch() {
        var $slider_active = $('div.slider IMG.slider_active');
        var $next = $slider_active.next();  
        $('.slider_active').removeClass('slider_active');
        $next.addClass('slider_active');
        if($next.length == 0){  // for cyclic rotation
         $('div.slider IMG:eq(0)').addClass('slider_active');
        }
 }
$(function() {
    setInterval(slideSwitch, 5000);
});

这使整个事情不再起作用:(,我知道他们的$next变量有问题,但这个解决方案不幸不起作用啊,我忘记了一个
。更新了我的awnser
$slider\u activenext()
应该是
$slider\u active.next()
感谢您的更新,现在它可以工作了,但是在最后一张图片之后它仍然停止了:/这使得整个事情不再工作:(,我知道他们的$next变量有问题,但是这个解决方案很遗憾不起作用啊,我忘了一个
。更新了我的awnser
$slider\u activenext()
应该是
$slider\u活动的。next()
感谢更新,现在它工作了,但在最后一张图像之后仍然停止:/I我尝试植入它,但$next=$('div.slider IMG')[0];使它不返回到起始位置对
slideSwitch()中的最后一行进行了更正
函数,它使用了一个不正确的变量名称,在最后一张图像之后,它只是淡入一个白色屏幕:(我试图植入它,但$next=$('div.slider IMG')[0];使它不返回到起始位置对
slideSwitch()中的最后一行进行了更正)
函数,在最后一张图像淡出白色屏幕后,它使用了不正确的变量名称:(