2013-01-14 35 views
1

我是网络编程新手,对三元运算符没有太多的了解。我发现了一些jQuery滑块的示例代码,但我需要对其进行编辑,以便在用户将鼠标移动到横幅上时停止。我希望有人能帮我把下面的代码变成一组简单的if和else if语句,我更习惯于处理。提前致谢。将以下三元运算符转换为常规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')); 
+2

开始向外你的工作方式。 – Jon

回答

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'); 
} 
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')); 
} 
+0

你真棒谢谢你!我现在看到什么让我感到困惑的是嵌套的if语句。 – user1978242

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'); 
} 
相关问题