这意味着什么i =(i + 1 == count)? 0:i + 1;?

时间:2014-08-25 07:27:12

标签: javascript jquery

我在我的jQuery插件中使用了这一行。但是我不明白这行是做什么的。下面是插件代码。

请简要解释一下。

(function ($) {
    $.simpleSlideShow = function (selector, settings) {
        // settings
        var config = {
            'delay': 2000,
            'fadeSpeed': 500
        };
        if (settings) { $.extend(config, settings); }

        // variables
        var obj = $(selector);
        var img = obj.children('img');
        var count = img.length;
        var i = 0;

        // show first image
        img.eq(0).show();

        // run slideshow
        setInterval(function () {
            img.eq(i).fadeOut(config.fadeSpeed);
            i = (i + 1 == count) ? 0 : i + 1;
            img.eq(i).fadeIn(config.fadeSpeed);
        }, config.delay);

        return this;
    };
})(jQuery);

5 个答案:

答案 0 :(得分:6)

这是简单的Conditional (ternary) Operator,与

相同
if(i + 1 == count){
   i = 0;
}
else{
   i = i+1;
}

只是建议它可能只是

i = (i+1) % count;

答案 1 :(得分:4)

英文,意思是:    如果i + 1等于count,则i = 0。否则,i = i + 1。

这是许多语言的简写符号。

答案 2 :(得分:2)

a ? b : c语法是三元运算符。 这与

相同
if(i + 1 == count)
   i = 0;

else
   i = i + 1;

在此处查看更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

答案 3 :(得分:2)

这是简单的三元运算符,正如家伙们已经说过的那样,但我会改用它:i = ++i % count

答案 4 :(得分:1)

这是ifelse的缩写形式。本声明的含义

i = (i + 1 == count) ? 0 : i + 1;

相同
if (i + 1 == count) {
   i = 0;
} else {
   i = i+1;
}