2013-06-25 48 views
0

我有一個日曆,由每個月的<table>組成。我正在使用JavaScript來展開/摺疊每個月。可摺疊桌面Javascript - 更改初始視圖

的Javascript:

$(function() { 
var $month = $('.month'); 
$month.find("tr").not('.monthLabel').hide(); 
$month.find("tr").eq(0).show(); 

$month.find(".monthLabel").click(function(){ 
    $month.find('.monthLabel').not(this).siblings().fadeOut(500); 
    $(this).siblings().fadeToggle(500); 
}).eq(0).trigger('click'); 
}); 

HTML:

<table border="0" cellpadding="0" class="month jan"> 
<tr class="monthLabel"> 
<th scope="col" colspan="7"> 
<h3>January</h3> 
</th> 
</tr> 
<tr class="weekLabel"> 
<th class="sun" scope="col" abbr="Sunday">Sun</th> 
<th class="mon" scope="col" abbr="Monday">Mon</th> 
etc... 
</table> 

它工作正常,但現在,它默認的第一個表(一月)擴大,其餘倒塌。相反,我希望它默認爲當前的月份展開,其餘的展開。沒有完全重新格式化表格,我可以做到這一點嗎?這將是理想的,因爲大約有40個使用VBasic自動生成的日曆。如果可能的話,我希望實際的表格HTML保持不變。

回答

1

我相信它默認爲一月的原因是,你是用燒製的第一行(1月)click事件 -

...eq(0).trigger('click'); 

如果你想默認爲不同的月份,只是供應一個不同的行號 -

// for february 
...eq(1).trigger('click'); 

就個人而言,我會提取功能,所以它可以用於單擊事件之外。

function showMonth(monthName){ .... } 
+0

至於日期,你將不得不從服務器通過它傳遞給JS,或使用日期在客戶端上的東西,如新的Date()。得到月() – Bungus

+0

感謝的是,Bungus。爲了將當前月份傳遞給javascript:.eq(<?php回聲日期(「n-1」);?>),我使用了php來觸發('click'); –