1

我有一个非常简单的幻灯片,但我需要能够在一个页面上显示多个幻灯片。目前 jQuery 忽略了额外的.archive_slideshow幻灯片。

http://jsfiddle.net/LJc7g/

$(document).ready(function(){
    $('.slide').first().addClass('active');
    $('.slide').hide();
    $('.active').show();
    $('.slide').click(function(){
        $('.active').removeClass('active').addClass('oldActive');
        if ( $('.oldActive').is(':last-child')) {
             $('.slide').first().addClass('active');
        }
        else {
            $('.oldActive').next().addClass('active');
        }
        $('.oldActive').removeClass('oldActive');
        $('.slide').hide();
        $('.active').show();
    });
});

最好的方法是什么?我在正确的轨道上吗?http://jsfiddle.net/LJc7g/1/

谢谢

4

1 回答 1

1

工作jsfiddle:jsfiddle.net/LJc7g/7

关键是您已将 $(this) 分配给 self,然后错误地使用它。这样做,它会正常工作:

$(document).ready(function(){

    $( "div.archive_slideshow" ).each(function() {
        var self = $(this);

        self.find('.slide').first().addClass('active');
        self.find('.slide').hide();
        self.find('.active').show();

        self.find('.slide').click(function(){
            self.find('.active').removeClass('active').addClass('oldActive');
            if ( $('.oldActive').is(':last-child')) {
                self.find('.slide').first().addClass('active');
            }
            else {
                self.find('.oldActive').next().addClass('active');
            }
            self.find('.oldActive').removeClass('oldActive');
            self.find('.slide').hide();
            self.find('.active').show();
        });
    });
});
于 2013-10-02T05:53:05.210 回答