0

我有一个由<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>

它工作正常,但现在,它默认第一个表(一月)展开,其余的折叠。相反,我希望它默认为当前月份展开,其余月份折叠。有没有办法在不完全重新格式化表格的情况下做到这一点?这将是理想的,因为其中大约有 40 个日历是使用 VBasic 自动生成的。如果可能的话,我希望实际的表格 HTML 保持不变。

4

1 回答 1

1

我认为它默认为一月的原因是您在第一行(一月)触发点击事件 -

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

如果您想默认使用不同的月份,只需提供不同的行号 -

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

就个人而言,我会将函数提取出来,以便在点击事件之外使用它。

function showMonth( monthName ){ .... }
于 2013-06-25T17:48:11.157 回答