【问题标题】:jQuery Content Slider Stopped working after Click点击后jQuery内容滑块停止工作
【发布时间】:2017-09-18 21:42:19
【问题描述】:
function nextSlideFunc() {
    var currentSlide = $(".slide.active-slide");
    var currentSlideIndex = $(".slide.active-slide").index();
    var nextSlideIndex = currentSlideIndex + 1;
    var nextSlide = $(".slide").eq(nextSlideIndex);

    $("#nextBtn").on("click", function(e) {
        e.preventDefault();

        currentSlide.removeClass("active-slide");

        if(nextSlideIndex === $(".slide").last().index() + 1) {
            //stay at last slide when reached.
            $(".slide").eq(nextSlideIndex - 1).addClass("active-slide");
        } else {
            nextSlide.addClass("active-slide");
        }
    });

}

点击下一个按钮后,幻灯片转到下一张我想要的幻灯片,但是当我继续点击时,它就停止了前进。

我在开发工具中检查了我的 HTML,它在其中一张满足条件的幻灯片上具有类名“active-slide”,但我不确定它为什么不起作用。

至于上一个按钮,它并没有像预期的那样删除类“active-slide”,知道为什么会这样吗?

【问题讨论】:

    标签: javascript jquery html slider


    【解决方案1】:

    您必须在单击事件的侦听器中设置变量:

    https://codepen.io/anon/pen/OxMxwd

    $("#prevBtn").on("click", function(e) {
        var currentSlide = $(".slide.active-slide");
        var currentSlideIndex = $(".slide.active-slide").index();
        var prevSlideIndex = currentSlideIndex - 1;
        var prevSlide = $(".slide").eq(prevSlideIndex);
    }
    

    这样您每次单击按钮时都会计算您的索引和下一个索引。您这样做的方式是计算一次并一遍又一遍地重用它,因此您将一遍又一遍地在同一个索引上做同样的事情。

    【讨论】:

    • 我没有意识到这个愚蠢的错误!非常感谢您的澄清:))
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2012-10-15
    相关资源
    最近更新 更多