我想在周末和节假日为c:calendar申请CSS。我正在尝试调用
使用jQuery并根据条件设置的beforeShowDay
事件。
<script>
$(document).ready(function(){
$(".hasDatepicker").datepicker("option", "beforeShowDay", function (date) {
//If condition true
return [true,'holidays'];
//else
return [true,''];
});
});
</script>
<style>
.holidays {background-color: wheat;}
</style>
<h:form prependId="false">
<p:calendar/>
</h:form>
但是事件并没有被解雇。还有其他我想念的东西吗?
最佳答案
您应该使用beforeShowDay
属性
beforeShowDay:在显示日期之前执行的回调,用于
自定义日期显示。
使用beforeShowDay javascript回调自定义每个日期的外观。该函数返回一个
具有两个值的数组,第一个是标志,指示是否将日期显示为启用状态,第二个
参数是要添加到日期单元格的可选样式类。以下示例禁用星期二和
星期五。 (PrimeFaces用户指南第50页)
<p:calendar value="#{dateBean.date}" beforeShowDay="tuesdaysAndFridaysDisabled" />
function tuesdaysAndFridaysDisabled(date) {
var day = date.getDay();
return [(day != 2 && day != 5), '']
}
jQuery解决方案
如果要解决此问题而无需修改primefaces元素,而是使用jquery datepicker
beforeShowDay
属性,请查看本教程Primefaces calendar – highlight dates