Javascript beforeShowDay方法如何工作?(Jquery UI日期选择器)
我已经花了很长时间试图找到一个清晰的解释,但我似乎无法理解这个方法是如何工作的。下面是jQueryUIAPI的官方文档。其他人可能很清楚,但我觉得有点模糊。我只想获取一个日期数组并禁用它们。我可以使所有日期不可选择,但不是我想要的 beforeShowDayType:函数(日期) 默认值:null 以日期为参数的函数,必须返回具有以下内容的数组: [0]:true/false,指示此日期是否可选择 [1] :要添加到日期单元格的CSS类名或默认演示文稿的“” [2] :此日期的可选弹出工具提示 在显示该函数之前,每天都会在datepicker中调用该函数Javascript beforeShowDay方法如何工作?(Jquery UI日期选择器),javascript,jquery,jquery-ui,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui,Jquery Ui Datepicker,我已经花了很长时间试图找到一个清晰的解释,但我似乎无法理解这个方法是如何工作的。下面是jQueryUIAPI的官方文档。其他人可能很清楚,但我觉得有点模糊。我只想获取一个日期数组并禁用它们。我可以使所有日期不可选择,但不是我想要的 beforeShowDayType:函数(日期) 默认值:null 以日期为参数的函数,必须返回具有以下内容的数组: [0]:true/false,指示此日期是否可选择 [1] :要添加到日期单元格的CSS类名或默认演示文稿的“” [2] :此日期的可选弹出工具提示
到目前为止,这是我的(不完整)代码
$(document).ready(function() {
var array = ["2014-01-03","2014-01-13","2014-01-23"];
$('#fromDate').datepicker({
dateFormat: "yy-mm-dd",
beforeShowDay: function(date) {
{
return [false, "", "Booked out"];
} else {
return [true, "", "available"];
}
}
});
});
试试这个:
beforeShowDay: function(date) {
if($.inArray($.datepicker.formatDate('yy-mm-dd', date ), array) > -1)
{
return [false,"","Booked out"];
}
else
{
return [true,'',"available"];
}
}
看起来是个好的开始。现在,您只需要在这两个
{
s之间使用if
语句。变量date
将是做出决定的日期,因此您的条件基本上是if(dateIsBookedOut(date))
同意,但只有当jquery构造函数($)与其他内容绑定时,才会这样做。