gpt4 book ai didi

jquery datepicker突出显示假期

转载 作者:行者123 更新时间:2023-12-01 06:02:59 24 4
gpt4 key购买 nike

我正在尝试制作一个 jquery 日期选择器日历,它会突出显示假期,并在日期选择器上的日期悬停时将假期名称作为工具提示。假期日期来自 php 文件 (holidays.php)。我的问题是..我似乎无法突出显示所有假期,它只突出显示一个日期。更具体地说,只是第一个返回的日期。

$(document).ready(function (){
var holiDays = (function () {
var val = null;
$.ajax({
'async': false,
'global': false,
'url': 'holidays.php',
'success': function (data) {
val = data;
}
});
return val;
})();

var result = [];
var holiDays = holiDays.split(',');

var s, k;

for (s = 0, k = -1; s < holiDays.length; s++) {
if (s % 4 === 0) {
k++;
result[k] = [];
}

result[k].push(holiDays[s]);
}

// This for loop is to check whether the values stored in result[] are correct

for (i = 0; i < result.length; i++) {
var f=result[i][0]+"-"+result[i][1]+"-"+result[i][2];
alert(f);
}


function nationalDays(date) {
var m = date.getMonth();
var d = date.getDate();
var y = date.getFullYear();

for (i = 0; i < result.length; i++) {
var f=result[i][0]+"-"+result[i][1]+"-"+result[i][2];
// WHEN I ALERT THE VALUE OF f HERE,
// IT ALWAYS DISPLAY THE FIRST VALUE IN THE RESULT ARRAY. WHY?
alert(f);

var d = new Date(f);

if (date.getFullYear() == d.getFullYear()
&& date.getMonth() == d.getMonth()
&& date.getDate() == d.getDate()) {
return [true, 'holiday', result[i][3]];
} else {
return [true];
}
}

}


$(function() {
$('input.pickerClass').live('click', function() {
$(this).datepicker({dateFormat: 'yy-mm-dd', beforeShowDay: nationalDays }).focus();
});

});



});

当我警告NationalDays函数之外的数组result[]内的值时,存储的值似乎是正确的。

  for (i = 0; i < result.length; i++) {
var f=result[i][0]+"-"+result[i][1]+"-"+result[i][2];
alert(f);
}

但由于某种原因,当我在NationalDays函数下的for循环内警告result[]的值时,它只返回存储在数组result[]中的第一个日期。但为什么?

有人有想法吗?...我将非常感激。 :)

最佳答案

我已经知道我错在哪里了。

if (date.getFullYear() == d.getFullYear()
&& date.getMonth() == d.getMonth()
&& date.getDate() == d.getDate()) {
return [true, 'holiday', result[i][3]];
} else {
return [true];
}

应该是

if (date.getFullYear() == d.getFullYear()
&& date.getMonth() == d.getMonth()
&& date.getDate() == d.getDate()) {
return [true, 'holiday', result[i][3]];
}
return [true];

我刚刚删除了 else 语句,它起作用了!

关于jquery datepicker突出显示假期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9370969/

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