gpt4 book ai didi

javascript - 突出显示 整周日期选择器

转载 作者:行者123 更新时间:2023-11-29 15:49:40 25 4
gpt4 key购买 nike

我有一个功能齐全且正在运行的日期选择器,您可以通过它选择整个开始工作周(周一至周五)。我现在要做的是进一步扩展它,以便当我点击特定的一周时。它将突出显示整个 .我让它部分工作,如下所示:Calandar preivew .可以看出,我遇到的问题是表格行对我来说似乎在做奇数、偶数、奇偶数。至于第一周,我突出显示该行以红色突出显示,而单元格以黄色突出显示。然后一周后它工作正常,然后如果我选择在那之后的一周,同样的事情会重复。我尝试检查 jquery-ui-1.8.4.custom.css 和 jquery-ui.css,但没有成功。让我感到困惑的是为什么这些单元格以黄色突出显示?我的日期选择器的代码如下。

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 中查看它。除此之外,我设置日期选择器的方式也不同。

我最初试图让我的日历像 this 一样工作但出于某种原因,当我尝试这样做时,我得到以下信息。这与CSS有关吗

更新2

Calendar & Firebug output

最佳答案

这是你想要的吗?

http://jsfiddle.net/william/YQ2Zw/2/

有几件事情出了问题:

ui-datepicker-current-day类应用于 <td>元素,所以它只需要向上移动一层就可以找到 <tr> , 所以我取消了一个给 parent() 的电话:

$(".ui-datepicker-current-day").parent().addClass('highlight');

您可以使用 ui-datepicker-current-day 设置多天类(class)。这就是为什么我需要使用 :eq(0)选择器只选择第一个元素:

$(".ui-datepicker-current-day:eq(0)").siblings().find('a').addClass('white');

此外,您为上面的语句调用了错误的类。

关于javascript - 突出显示 <TR> 整周日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7187796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com