2017-03-05 235 views
-7

我在一個網站上找到了這段代碼, ,我想知道這個功能是什麼和做什麼的。 我知道PHP,HTML,CSS和JavaScript, ,但我還沒有學習JQUERY和AJAX。我特別需要知道他們跟着放東西的顏色數組中的常規,它是隨機的,或者它有一個模式:這個函數做什麼?

$('#onehour_next').css('backgroundColor', colors[(hours == 23 ? 0 : hours+1)]);

function doStuff() 
     {  
      current = new Date(); 
      hours = current.getHours(); 
      minutes = 59 - current.getMinutes(); 
      seconds = 59 - current.getSeconds(); 

      onehour.innerHTML = prettyTime(0, minutes, seconds); 

      if (colors.length === 0 || current.getSeconds() === 0) 
       init(); 

      $('#onehour').css('backgroundColor', colors[hours]); 
      $('#onehour_next').css('backgroundColor', colors[(hours == 23 ? 0 : hours+1)]); 

      setTimeout(doStuff, 1000); 
     } 
+0

的'colors'陣列貌似是某個地方創造了這個功能之外它,它只是使用他回覆。這個函數中的'colors'數組沒有任何附加/前綴。 – Sam

+4

'「但我還沒有學習JQUERY和AJAX」' - 這裏只有最少的jQuery,沒有AJAX。 ''我特別需要知道它們將顏色數組放入顏色的例程「 - 此代碼不會將任何內容放入」顏色「中。該變量在其他地方定義/填充。你究竟在問什麼這個代碼?當你調試這段代碼時,它的行爲與你期望的不同? – David

+0

你們需要看整個代碼嗎? –

回答

0

的代碼設置不同的顏色爲每個小時的一天。

數組colors未在此位代碼中定義,但大概它包含列表中的24種不同顏色。列表中的第一種顏色將在晚上11點至晚上11:59之間使用,然後在午夜使用第二種顏色,直到第二十四種顏色在晚上10點到10:59之間使用。


要解釋代碼如何工作,您需要查看每個小細分。

  • hours == 23被問「是天目前23小時?(即23:00)」
  • 0只是數字零
  • hour + 1比當天的當前小時更高之一。
  • question ? answer1 : answer2基本上說「如果問題是真實的,那麼使用ANSWER1,如果是假的,用ANSWER2」
  • 所以(hours == 23 ? 0 : hours+1)基本上意味着「輪目前的時間長達一天的一個小時」,將是一個值在0和23之間
  • colors[n]表示「以列表顏色查找第n個值」。請注意,0是第一項,1是第二項等。
  • $('#onehour_next')查找與ID的HTML元素onehour_next
  • .css將基於接下來的兩個值那個元素
  • 'backgroundColor'意味着它是設置該元素的背景顏色
  • 所以值的CSS我們從colors[(hours == 23 ? 0 : hours+1)]得到將被設置爲元素的背景顏色onehour_next