我每个月都有一个由<table>
组成的日历。我每个月都在使用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>
它运行正常,但是现在,默认情况下第一个表(1月)已展开,其余表格已折叠。相反,我希望它默认为当前月份扩展而其余月份崩溃。有没有办法在没有完全重新格式化表格的情况下完成这项工作?这将是理想的,因为这些日历中大约有40个是使用VBasic自动生成的。如果可能的话,我希望实际的表格HTML保持不变。
答案 0 :(得分:1)
我认为它默认为1月的原因是你在第一行(1月)触发了点击事件 -
...eq(0).trigger('click');
如果您希望默认为其他月份,请提供不同的行号 -
// for february
...eq(1).trigger('click');
就个人而言,我会提取函数,以便在点击事件之外使用它。
function showMonth( monthName ){ .... }