2017-04-11 59 views
0

這是我的第一個問題在這裏,請不要生氣,如果這是愚蠢的...... 所以我有這個代碼塊,並且它不工作:開關未工作

var clicks = 0; 

$('body').click(function(){ 
    clicks ++; 
    console.log(clicks); 
}); 

switch(clicks){ 
     case 1: 
     $('#contentlist1').fadeIn(50); 
     break; 
     case 2: 
     $('#contentlist2').fadeIn(50); 
     break; 
     case 3: 
     console.log("this is 3"); 
     break;   
     case 4: 
     $('#contentlist4').fadeIn(50); 
     break; 
     }; 

我想要做的就是讓元素在每次隨後的點擊中一個接一個地褪色,就像powerpoint bulletpoint動畫一樣,但它不起作用。

我已經將fadeIn更改爲console.log('message')等以查看它是否是破壞的淡入淡出,但我認爲該開關不起作用,而不是淡入淡出。 (元素已經淡出,所以淡入淡出效果應該正常)。

這段代碼有什麼問題?我已經看過一些資料,它不應該是因爲'點擊'是一個整數值。

+2

你'之開關永遠只用0'的'值運行一次。當你點擊時,你正在改變'change',但不會重新運行'switch'語句。 –

+0

@RocketHazmat感謝您的快速回答!這實際上很合乎邏輯...將我的開關放在'body.click ...'功能幫助中? –

+1

爲什麼不試試看? :) –

回答

2

你的switch語句應該是click函數內部,你應該檢查時clicksmax箱子多,

var clicks = 0; 

$('body').click(function() { 
    if(++clicks > 4) clicks = 1; 

    switch (clicks) { 
     case 1: 
      $('#contentlist1').fadeIn(50); 
      break; 
     case 2: 
      $('#contentlist2').fadeIn(50); 
      break; 
     case 3: 
      console.log("this is 3"); 
      break; 
     case 4: 
      $('#contentlist4').fadeIn(50); 
      break; 
    }; 
    console.log(clicks); 
}); 
+0

問題解決了! :D感謝您的快速回復。儘管如此,仍然是一個新秀的錯誤,但我想我們都必須在某個時候學習 –