2017-03-05 90 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