0

これは私のカルーセルフィドルです

古い li の問題です。以前の li を削除する必要があります

js コード:

$('.conrollers .prev').click(function () {
    slide_prev();
});
$('.conrollers .next').click(function () {
    slide_next();
});

function slide_prev() {
    $('ul .slide.visible').prev().addClass('visible').addClass('visible').next().next().removeClass('visible');
    $('ul .slide').clone().insertBefore(".slide.first").removeClass('first').removeClass('visible').first().addClass('first');
}

function slide_next() {
    $('ul .slide.visible').next().addClass('visible').next().addClass('visible').prev().prev().removeClass('visible');
    $('.slide').clone().addClass('no_remove_this').insertAfter(".slide.visible.last").removeClass('last').removeClass('visible').last().addClass('last');

}

var timer_li = setInterval(slide_next, 1000);

    $('.side').mouseover(function(){
        clearInterval(timer_li);
    }).mouseout(function(){
        timer_li = setInterval(slide_next, 1000);
    })


$('ul .slide').first().addClass('visible');
$('ul .slide').first().next().addClass('visible');

$('ul .slide:first-child').addClass('first');
$('ul .slide:last-child').addClass('last');




$('ul .slide').first().addClass('visible');
$('ul .slide').first().next().addClass('visible');

class .no_remove_this 私が追加したのは、これが次のようなすべてのli.slideを削除するのに役立つと思うからです:

:not(.no_remove_this);

誰か助けてくれませんか?)

ありがとう!)

更新されたカルーセル フィドル

4

1 に答える 1

1

少しクリーンアップしましたが、コードは大幅に改善される可能性があります。

http://jsfiddle.net/8rNbZ/11/

すべてを削除しました

 .clone()

代わりにdom要素を再利用しました

于 2013-05-31T14:06:05.320 に答える