这是什么意思I = (I + 1 == count) ?0: I + 1;

what does this means i = (i + 1 == count) ? 0 : i + 1;?

本文关键字:count 是什么 意思      更新时间:2023-09-26

我在我的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);

这是一个简单的条件(三元)运算符

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

只是一个建议,可以只是

i = (i+1) % count;

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

在很多语言中都是一种速记符号

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

这是一个简单的三元运算符,正如大家已经说过的,但我会使用这个代替:i = ++i % count

这是ifelse的缩写形式。语句的含义

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

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