为什么我必须检查长度=== 0才能重新启动幻灯片?

时间:2015-04-29 13:28:56

标签: javascript jquery html css css3

我跟随Codecademy"创建一个互动网站"课程。我没有错误,但我对我不理解的事情有疑问:在幻灯片中使用if语句。

if (nextSlide.length === 0) {
            nextSlide = $('.slide').first();
            nextDot = $('.dot').first();
        };

这个if语句适用于最后一张幻灯片之后它会转到第一张幻灯片。 为什么是nextSlide.length === 0

jQuery的:

var main = function() {
    $('.dropdown-toggle').click(function() {
        $('.dropdown-menu').toggle();
    });
    $('.arrow-next').click(function() {
        var currentSlide = $('.active-slide');
        var nextSlide = currentSlide.next();

        var currentDot = $('.active-dot');
        var nextDot = currentDot.next();

        if (nextSlide.length === 0) {
            nextSlide = $('.slide').first();
            nextDot = $('.dot').first();
        };

        currentSlide.fadeOut(600).removeClass('active-slide');
        nextSlide.fadeIn(600).addClass('active-slide');

        currentDot.removeClass('active-dot');
        nextDot.addClass('active-dot');
    });
};

$(document).ready(main);

3 个答案:

答案 0 :(得分:6)

if语句用于检查当前幻灯片后是否有幻灯片,或者是否应该还原为第一张幻灯片。

nextSlide.length将返回一个数字来表示下一张幻灯片是否存在,否则它将返回0.

.length API文档:Here

答案 1 :(得分:2)

如果您的问题是===而不是==

的原因

这可确保所比较的变量具有相同的type

更多阅读:SO Question === vs ===

答案 2 :(得分:1)

检查是否有下一张幻灯片。如果 0 则表示没有下一张幻灯片。 在JavaScript中,空虚的长度为0。