我有一个功能齐全的日期选择器,可以选择整个开始工作周(周一至周五)。我现在要做的是将它进一步扩展,以便在我点击特定的一周时。它将突出整个。我有它的paritally工作,如下所示:Calandar preivew。可以看出,我遇到的问题是,对我来说,表格行似乎是奇数,偶数,奇数偶数。至于第一周,我突出显示行以红色突出显示,单元格以黄色突出显示。然后是工作罚款的那一周,然后如果我选择一周之后,那将会重复。我试过检查jquery-ui-1.8.4.custom.css和jquery-ui.css,但没有运气。似乎让我感到困惑的是为什么细胞以黄色突出显示?代码遵循我的datepicker。
Javascript:
$(function()
{
var startDate;
var endDate;
var selectCurrentWeek = function()
{
window.setTimeout(function () { $('.week-picker').find('.ui-datepicker-current-day a').addClass('ui-state-active')}, 1);
}
function check(d) {
if(d.length() == 2) {
dd = d;
return dd;
} else {
dd = "0" + myDateParts[0];
return dd;
}
}
var selectedWeek;//remember which week the user selected here
$('.week-picker').datepicker( {
beforeShowDay: $.datepicker.noWeekends,
showOtherMonths: true,
selectOtherMonths: true,
onSelect: function(dateText, inst) {
var date = $(this).datepicker('getDate');
startDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 1);
endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 6);
var dateFormat = 'yy-mm-dd'
var newDate = $('#startDate').text($.datepicker.formatDate( dateFormat, startDate, inst.settings ));
var oldDate = document.getElementById('startDate');
var date_textnode = oldDate.firstChild;
var date_text = date_textnode.data;
myDateParts = date_text.split("-");
var dd = myDateParts[2];
var mm = myDateParts[1];
var yy = myDateParts[0];
selectCurrentWeek();
window.location.href = "/timesheet?week_commencing=" + yy + "-" + mm + "-" + dd;
},
beforeShowDay: function(date) {
var cssClass = '';
if(date >= startDate && date <= endDate)
cssClass = 'ui-datepicker-current-day';
return [true, cssClass];
},
onChangeMonthYear: function(year, month, inst) {
selectCurrentWeek();
}
});
$( ".week-picker" ).datepicker().click(function(event) {
// highlight the TR
$(".ui-datepicker-current-day").parent().addClass('highlight');
// highlight the TD > A
$(".ui-datepicker-calendarr-day").siblings().find('a').addClass('white');
});
$('.week-picker .ui-datepicker-calendar tr').live('mousemove', function() { $(this).find('td a').addClass('ui-state-hover'); });
$('.week-picker .ui-datepicker-calendar tr').live('mouseleave', function() { $(this).find('td a').removeClass('ui-state-hover'); });
});
HTML
<div class="datepicker borderbox">
<b><center>Hours for Week commencing: <span id="startDate"></span></center></b>
<div class="week-picker"></div>
</div>
CSS
.highlight {
border: 1px solid red;
}
.white {
background: white !important;
}
我试过看下面的stackoverflow问题Related stackoverflow。没有运气,因为链接被打破,并尝试在JSfiddle中查看它。除此之外,我设置datepicker的方式也不同。
我正试图让我的日历像this一样工作但是出于某种原因,当我尝试这样做时,我得到以下内容。这与css
有关UPDATE2
答案 0 :(得分:1)
这是你想要的吗?
http://jsfiddle.net/william/YQ2Zw/2/
有几件事情出了问题:
ui-datepicker-current-day
类已应用于<td>
元素,因此只需向上移动一级即可找到<tr>
,因此我将一次调用{{1} }:
parent()
您使用$(".ui-datepicker-current-day").parent().addClass('highlight');
课程设置了多天。这就是为什么我需要使用ui-datepicker-current-day
选择器来仅选择第一个元素:
:eq(0)
另外,你为上述声明调用了错误的类。