2014-03-03 36 views
1

我想提高我的編碼技能,但我似乎無法弄清楚這一點。我如何以簡寫方式編寫以下內容?如果其他的JS速記

/* fade */ 
$('.toggle-ui').on({ 
    'click': function (e) { 
     e.preventDefault(); 
     var divToFade = ['#logo', '#hide-interface']; 

     $.each(divToFade, function(intValue, currentElement) { 
      // check alpha state and switch 
      var currOp = $(currentElement).css('opacity'); 

      if (currOp == 1) $(currentElement).css('opacity', 0.5); 
      if (currOp == 0.5) $(currentElement).css('opacity', 1); 
     }); 
    } 
+1

*三元運算符*是簡寫的if-else大多數編程語言。 – Praveen

+0

我想你在尋找三元運算符,即(測試條件)?「成功結果」:「失敗結果」; – Sumant

+1

@Sumant SMS俚語吮吸+使用backsticks。 – leaf

回答

7

使用ternary operator

$(currentElement).css('opacity', currOp == 1 ? 0.5 : 1); 

作爲一個方面說明:我習慣使用=====,以避免意外的類型強制意外的錯誤。在這裏使用它,我將通過+解析currOp多項:

​​

欲瞭解更多信息,看看here

+0

謝謝。這是我正在尋找的語法。我被括號內的操作員弄糊塗了。我把它們放在外面。 – obmon

+0

@obmon不會從根本上改變答案。如果有什麼不起作用和評論。並且爲了記錄,'==='工作得很好,你一定做了別的事情。 –

+0

@ShadowWizard或者我可以編輯它並對編輯進行解釋。 currOp === 1不起作用。 currOp == 1的作品。 – obmon

2

你也可以做簡單的數學:

$(currentElement).css('opacity', 1.5 - currOp); 

由於

1.5 - 1.0 = 0.5 
1.5 - 0.5 = 1.0 
+0

這會令我或其他人在將來閱讀代碼時感到困惑...... – obmon

+0

@obmon儘管它非常聰明,值得讚賞+1。 – leaf

+0

@procrastinator ok。 – obmon