【问题标题】:Why is .first() in jquery targeting the second element?为什么 .first() 在 jquery 中针对第二个元素?
【发布时间】:2013-09-14 04:54:42
【问题描述】:

我正在编写一个可以无限滚动的基本轮播/滑块。基本上我试图将容器移动到幻灯片的宽度上,将第一张幻灯片移动到最后,然后将容器移回。

出于某种原因 .first() 移动的是第二个元素而不是第一个:

$('.half-slider .next').click(function(){
    var slideW = $(this).parent().parent().find('.slide').first().outerWidth();
    $(this).parent().parent().find('.slides').animate({'margin-left': -slideW},function(){
        var firstSlide = $(this).find('.slide').first();
        var lastSlide = $(this).find('.slide').last();
        firstSlide.after(lastSlide);
    });
});

我创建了一个 jsfiddle:http://jsfiddle.net/BLAaF/2/

*只需在小提琴中选择“下一步”。 “prev”在示例中未激活。

【问题讨论】:

    标签: jquery css slider


    【解决方案1】:
    firstSlide.after(lastSlide);
    

    这会将lastSlide 放在firstSlide 之后。根据您“将第一张幻灯片移至末尾”的说法,我认为您的意思是:

    firstSlide.insertAfter(lastSlide);
    

    将第一张幻灯片放在最后一张幻灯片之后。

    【讨论】:

    • 我在 jsfiddle 中进行了此更改,它在第一次交互后工作。第一次点击从 1 直接变为 3,但之后它以正确的顺序进行,就好像它将 1 和 2 移动到末尾而不仅仅是 1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2022-11-29
    • 1970-01-01
    • 2013-05-29
    相关资源
    最近更新 更多