1

我是网络编程的新手,对三元运算符的处理不多。我找到了一些 jquery 滑块的示例代码,但我需要对其进行编辑,以便当用户将鼠标移到横幅上时它会停止。我希望有人可以帮助我将下面的代码变成一组简单的 if 和 else if 语句,我更习惯于处理这些语句。提前致谢。

//Get next image, when it reaches the end, rotate it back to the first image 

var next = ((current.next().length) ? ((current.next().hasClass('show')) ? $('div.rotator ul li:first') :current.next()) : $('div.rotator ul li:first'));
4

3 回答 3

2

不使用三元运算符的等价物是:

var next;
if (current.next().length) {
   if (current.next().hasClass('show')) {
      next = $('div.rotator ul li:first')
   }
   else {
      next = current.next();
   }
}
else {
   next = $('div.rotator ul li:first'));
}
于 2013-01-14T19:27:31.053 回答
1

您应该知道三元运算符是这种格式:

condition ? if true : else

这样写并尝试翻译它:

var next = ((current.next().length)
            ?
                ((current.next().hasClass('show'))
                ?
                    $('div.rotator ul li:first')
                :
                    current.next())
            :
                $('div.rotator ul li:first'));

现在您可以将其可视化为 if/else 块,只需更改语法即可。

var next;
if (current.next().length) {
    if (current.next().hasClass('show')) {
        next = $('div.rotator ul li:first');
    } else {
        next = current.next());
    }
} else {
    next = $('div.rotator ul li:first');
}
于 2013-01-14T19:26:15.923 回答
0

这是if/中的等价物else

var next;
if (current.next.length) {
    if (current.next().hasClass('show')) {
         next = $('div.rotator ul li:first');
     } else {
        next = current.next();
    }
} else {
    next = $('div.rotator ul li:first');
}
于 2013-01-14T19:28:53.903 回答