2014-12-07 98 views
0

任何想對此進行刺探的人,我都可以真正使用你的幫助!用jQuery根據一天中的小時數更改div

我有幾行php,根據星期幾切換出一個js文件。 在每個js文件中,我需要它根據小時來隱藏/顯示div。由於某種原因,這是行不通的。有任何想法嗎?

$(document).ready(function() { 

//initialize on-air functions for Sunday... Yay it's Jesus day! 
    var d = new Date(); 
    var currentHour = d.getHours(); //0-23 

    if (currentHour > 5 && currentHour < 6) 
    { 
     $('#no_onair').hide(); 
     $('#newdimesion_onair').show(); 


     } 
     else if (currentHour > 6 && currentHour < 7) 
    { 
     $('#no_onair').hide(); 
     $('#artfthesong_onair').show(); 


     } 
     else if (currentHour > 8 && currentHour < 10) 
    { 
     $('#no_onair').hide(); 
     $('#thejazzshow_onair').show(); 


     } 

    else if (currentHour > 11 && currentHour < 13) 
    { 
     $('#no_onair').hide(); 
     $('#rob_onair').show(); 


     } 


     else if (currentHour > 13 && currentHour < 14) 
    { 
     $('#no_onair').hide(); 
     $('#nick_onair').show(); 


     } 

     else if (currentHour > 16 && currentHour < 18) 
    { 
     $('#no_onair').hide(); 
     $('#stadler_onair').show(); 



     } 
    else { 
     $('#no_onair').show(); 
     } 

setTimeout(function() { 
    $('#fixed_onair').addClass('animated fadeInDown'); 
    $('#fixed_onair').show(); 
}, 5100); 

}); 
+0

'currentHour的> 5 && currentHour的<6'將始終是假的。如果(currentHour> = 5 && currentHour <= 6)等於'currentHour> 6 && currentHour <7'和'currentHour> 13 && currentHour <14' – 2014-12-07 21:33:43

+0

。 – dm4web 2014-12-07 22:56:35

+0

謝謝!我會嘗試一下,並讓它知道它是否有效。 – 2014-12-07 23:45:22

回答

2

我不知道你爲什麼要用php來交換JS文件。最簡單的方法是將CSS類分配給div,然後使用jQuery來隱藏/顯示。

下面是一個可以工作的代碼片段。這將顯示負載上正確的div。如果您想爲網站上已有的人動態地交換它們,您可以設置一個計時器來檢查每個xx分鐘並運行相同的代碼。如果需要的話,每個循環都可能被優化,但似乎沒有那麼多div。無論如何,比使用PHP來注入腳本要好得多。

<div class="all d0 h1 h2 h3 h4" style="display:none;"> Sunday 1, 2, 3, 4 </div> 
 
<div class="all d0 h5 h6 h7 h18" style="display:none;"> Sunday 5, 6, 7, 18 </div> 
 
<div class="all d1 h1 h2 h3 h4" style="display:none;"> Monday 1, 2, 3, 4 </div> 
 
<div class="all d1 h5 h6 h7 h8" style="display:none;"> Monday 5, 6, 7, 8 </div> 
 

 
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script> 
 

 
<script> 
 
    $(document).ready(function() { 
 
     $("div.all").hide(); 
 
     var date = new Date(); 
 
     var d = date.getDay(); 
 
     var h = date.getHours(); 
 
     console.log('searching for ' + d + ' and ' + h); 
 
     $("div.all").each(function() { 
 
      if ($(this).hasClass("d" + d) && $(this).hasClass("h"+h)) { 
 
       $(this).show(); 
 
      } 
 
     }); 
 
    }); 
 
</script>

+0

我正在製作一個廣播電臺的廣播節目......如果我將js分成單獨的日子,我認爲這將是最容易管理的。所以每天都會顯示當前正在播放的dj。所以我只是使用PHP來抓住一週中的某一天,併爲當天插入正確的JavaScript ......並且它大約有20多個Dj ......這是不正確的嗎? – 2014-12-08 00:31:08

+0

如果div內容是靜態的,只是dj的名稱和靜態blurb/picture/...我只是在javascript中做所有事情,正如我上面概述的那樣。只需給每個div標識CSS類幾天和幾小時,並使用jquery顯示匹配的。然後,我會執行一個setInterval,每隔1分鐘執行一次代碼,以防萬一他人的瀏覽器全天打開。上面的代碼應該適合你。 – Born2Code 2014-12-08 00:47:42

+0

感謝您的幫助。這很好用!我怎麼能在那裏放分鐘? – 2014-12-08 01:17:45