我有一個日曆,我想突出顯示週六到週六的任何一天的鼠標懸停......所以如果你在5月7日星期一凌晨它會突出顯示星期六5 - 星期六12。使用jquery突出顯示多個div
我用下面的方法管理它。日曆動態用PHP生成的,因此,每個天看起來像這樣:
而每星期星期六至星期六和星期六2周共享產生<td class="calendar-day week_number_' . $this_week_number . '">
<div class="hello" id="day_' . $list_day . '"><div class="day-number">' . $list_day . '</div>'
</td>
'week_number_ . $this_week_number'
具有施加兩個類,例如,第一個可用的周這一年將是week_number_1
(這是一個度假小屋,所以不是所有的周都會開放)。 $list_day
是其他地方每天生成的日期。
的高亮發生使用以下的jQuery在頁面的底部:
$('.hello').mouseover(function() {
var day = $(this).attr('id');
$.post('/modules/calendar/get_week_number2', { month:" . $month . ", day:day, year:" . $year . " }, function(data) {
$('.calendar-day').siblings('.week_number_'+data).css('background', 'yellow');
});
});
$('.hello').mouseleave(function() {
var day = $(this).attr('id');
$.post('/modules/calendar/get_week_number2', { month:" . $month . ", day:day, year:" . $year . " }, function(data) {
$('.calendar-day').siblings('.week_number_'+data).css('background', 'red');
});
});
這是笨這樣做這jQuery是產生並在頁面的底部插入,只是解釋PHP變量在那裏。最後get_week_number2
是一個函數來確定要突出哪一週...
public function get_week_number2() {
$month = $_POST['month'];
$day = str_replace("day_", "", $_POST['day']);
$year = $_POST['year'];
$date = date('Y-m-d H:i:s', mktime(0,0,0,$month,$day,$year));
$date2 = strtotime($date);
foreach($this->weeks_in_year() AS $week_number => $week)
{
if($date2 > strtotime($week['from']) AND $date2 < strtotime($week['to']))
{
echo $week_number;
}
}
}
$this->weeks_in_year()
是產生周在今年的陣列另一個函數...但我不認爲需要在這裏......它太長了!
所以我的問題是,這是有效的,但沒有更好的方法嗎?我錯過了什麼嗎?
一個好點,但需要突出顯示的tds並不都在同一行......它是一個標準的日曆佈局。 –
很難想象一個「標準的日曆佈局」,同一周的幾天不在同一行。你能詳細說一下嗎? –
對不起,像一個Outlook日曆一樣,星期一或星期一開始。 –