2013-08-02 143 views
0

我在我的網站上創建了一個開關。它像一個燈開關一樣工作。當人們點擊它時,一些文本段落的背景顏色和顏色將切換到不同的顏色。我寫了下面的代碼,併成功完成了任務:If Else statement in Javascript

$(".clickme").click(function() {  
    $('html').css('background-color', 'black'); 
    $('#top_nav a').css('color', '#ff7b00'); 
    $('.back_face').css('background-color', 'black'); 
    return false; 
    }); 

但是現在我想打開燈光。我創建了一個名爲lighton的var,並將其設置爲0.我嘗試使用if else語句來完成任務,但它不起作用。下面是我寫的代碼和失敗的代碼:

<a href="" class="clickme">Click me</a> 

<script>  
    $(".clickme").click(function() {  
    var lightoff = 0; 
    if (lightoff=0){  
     $('html').css('background-color', 'black'); 
     $('#top_nav a').css('color', '#ff7b00'); 
     $('.back_face').css('background-color', 'black'); 
     lightoff = 1; 
     return false;  
}else{ 

     $('html').css('background-color', 'white'); 
     $('#top_nav a').css('color', 'black'); 
     $('.back_face').css('background-color', 'white'); 
     lightoff = 0; 
     return false; 
    } 
}); 

</script> 

我剛剛開始學習JavaScript,並且已經檢查了JavaScript條件語句語法。所以我希望有人知道我的代碼有什麼問題。非常感謝。

+1

put'var lighto如果(lightoff = 0){'您需要使用'=='兩個equaltos()函數,則ff = 0;'out of your'click()'事件 – zzlalani

回答

3

既然你想使用跨多個調用回調方法lightoff值時,它應該被定義出來的處理方法的範圍,所以該方法是多次調用將分享lightoff

相同的實例

另外,作爲@zzlalani指出=操作員站進行分配,你需要的是比較操作是==

應該

var lightoff = 0; 

$(".clickme").click(function() { 

    if (lightoff==0){ 

     $('html').css('background-color', 'black'); 
     $('#top_nav a').css('color', '#ff7b00'); 
     $('.back_face').css('background-color', 'black'); 
     lightoff = 1; 
     return false; 

    }else{ 

     $('html').css('background-color', 'white'); 
     $('#top_nav a').css('color', 'black'); 
     $('.back_face').css('background-color', 'white'); 
     lightoff = 0; 
     return false; 
    } 
}); 
+0

條件應該爲'if(lightoff == 0){' – zzlalani

+0

@zzlalani剛剛注意到..糾正 –

5

您需要使用if (lightoff==0){

=是一個賦值運算符,而==是一個比較運算符。

在條件下使用賦值運算符時,將分配賦值,因此(lightoff=0)將始終計算爲0,然後將其轉入false。在條件中使用賦值運算符的最常見情況是當賦值函數的返回值時,例如, (lightoff = checkIfLightIsOff())

+1

和'==='是做比較的正確方法;) –

+0

好點的Sekharan。 Javascript與所有真實和虛假的「價值觀」是質樸的。本來我想說的是,對於簡單的例子來說,double equals是安全的,但考慮到JS的本質,我會開始使用等號運算符。另外asifrc,jQuery是學習基礎知識的好方法,但是你需要知道在某些情況下發生了什麼。現在開始! – Phix

+0

@Pix我在聽過jquery之前已經使用純JavaScript了超過5年。我沒有冒犯或任何大聲笑,但只是好奇:是否有什麼我寫的,促使你建議我學習更多關於JavaScript(或者我太依賴jQuery)? – asifrc

1

我不是Javascript專家,但它看起來像使用'='而不是「==」,它將變量設置爲0而不是比較它。的

0

代替=你應該使用=====

  • =是賦值運算符

  • ==等於即
    X == 8虛假
    X == 5真

  • ===恰恰等於升至(等於值且等於類型),即,
    X === 「5」 假
    X === 5真

其他一些情況下:

'' == '0'   // false 
0 == ''    // true 
0 == '0'   // true 

false == 'false' // false 
false == '0'  // true 

false == undefined // false 
false == null  // false 
null == undefined // true 
0

另一種方法是toggle事件

$(".clickme").toggle(function() {  
    $('html').css('background-color', 'black'); 
    $('#top_nav a').css('color', '#ff7b00'); 
    $('.back_face').css('background-color', 'black'); 
    return false;  
}, function() { 
    $('html').css('background-color', 'white'); 
    $('#top_nav a').css('color', 'black'); 
    $('.back_face').css('background-color', 'white'); 
    return false; 
});