easyui calendar 标记多个日期
在项目中遇到,客户要求在日历上标记处简历面试的日期,一目了然,本来不想搞的了,因为搜了大量的信息,找不到方法,搜不到相关资料,看官方文档也没有相应的方法,就连事件也才有一个onSelect;
没有办法啊,客户又需要,只有自己研究慢慢写了,仔细桌面了一下calendar生成的html;开始的思路是这样:
1.查出当前日期之后的面试日期;
2.遍历日历html下面的td
3.判断日期相等就加上一个标记类calss
4.看了很久的源码找到方法onNavigate,翻页的时候事件,执行加类方法
贴图
代码如下:
PHP代码:
$interview = Interview::find("plan_time>" . time())->getAll();
$sign = array();
foreach ($interview as $val){
$sign[] = date("Y,n,j",$val->plan_time);
}
$sign = implode("|", $sign);
//dump($sign);
$this->_view['sign'] = $sign;JS代码:
//点击日历
$('.calendar').calendar({
current:new Date(),
onSelect: function(date){
var dd = date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
getInterview(dd);
},
onNavigate: function(year, _58a) {
setSign();
}
});
function setSign(){
$(".calendar td").each(function(){
var arr = "<?php echo $sign?>";
arr = arr.split('|');
if($.inArray($(this).attr('abbr'), arr)!=-1){
$(this).addClass("calendar-sign");
}
});
}请先登录后再评论登录