Bootstrap日期/日历插件Datepicker 时间加标记
由于工作需要,项目中使用了Bootstrap日期/日历插件Datepicker,根据需求需要在其中添加日期标记,实现效果图如下:

特此记录此次解决方案:
1.首先分析了功能的DOM元素(如下图),可以看到椭圆形标记的,说明此日期控件分为三个层,第一个是显示日,
第二个显示的是月份,第三个显示的是年份

2.我的做法是将日期显示的地方放置一个addr属性作为当前选择年月的标记,不论是日点击事件,前后月份切换,还是月份或年份点击事件,
都需要改变此属性的值。
3.然后修改月份前后切换事件,修改日期点击事件(此事件包括选择月份),修改前后月份切换事件,下面列举的是日期点击事件。
$('#zhixingdate').datepicker().on('changeDate', function(ev){ //日期改变事件
var dmonth=ev.date //当前选中日期
getOrderlyPowerDays(dmonth); //日期点击事件执行时进行其他操作(加标记)
});
4.加标记,也就是上面的getOrderlyPowerDays()方法,此方法中,将获取所有的显示日的td标签+addr属性的年月拼接起来和方法中查询到
的日期做比较,如果是相同日期,则添加标志(添加remark样式)
function showRemark(days){
var datepicker=$('#zhixingdate').parent();
var Mdateswitch=datepicker.find(".datepicker .datepicker-days .table-condensed thead .switch"); //日日历里的当前月份元素
var UIDays=datepicker.find(".datepicker .datepicker-days .table-condensed tbody tr td.day"); //显示日层中所有的td元素
UIDays.removeClass("remark"); //移除所有的标志
var dmonths=Mdateswitch.attr("addr"); //获取当前显示日层中addr属性的值
//循环td显示日元素,将显示日的值+addr属性的值,和传递过来的dasys数组结果集做比较,如果相等则加上标记样式remark
for(var i=0; i< days.length;i++){
var v = days[i];
UIDays.each(function(){
var t=$(this).html();
if(v == (dmonths+(parseInt(t,10)<10?("0"+parseInt(t,10)):parseInt(t,10)))){
if(!$(this).hasClass("remark") && !$(this).hasClass("new") && !$(this).hasClass("old")){
$(this).addClass("remark");
}
}
});
}
}
.remark {
background: url("../img/remark.png") no-repeat scroll 0 0 transparent;
}
又遇到相同问题的童鞋可以联系我,相互讨论!^_^
Bootstrap日期/日历插件Datepicker 时间加标记的更多相关文章
- 一款简洁大气的jquery日期日历插件
本jquery插件名为manhuaDate,暂时只支持jquery 1.9.0以下版本,比如jquery-1.8.3.min.js 查看效果网址:http://keleyi.com/a/bjad/em ...
- 2016/06/10 日历插件 Datepicker
显示效果: <!doctype html> <html lang="en"> <head> <meta charset="utf ...
- jquery 日历插件datepicker格式调整
<script> $(function() { $("#datepicker").datepicker({ dateFormat: "yy/mm/dd&quo ...
- 日历插件DatePicker
Datepicker 地址:https://getuikit.com/v2/docs/datepicker.html
- jqueryUI之datepicker日历插件的介绍和使用
jQuery UI很强大,其中的日期选择插件Datepicker是一个配置灵活的插件.我们可以自定义其展示方式,包括日期格式.语言.限制选择日期范围.添加相关按钮以及其它导航等.
- jquery插件datepicker
jQuery UI很强大,其中的日期选择插件Datepicker是一个配置灵活的插件,我们可以自定义其展示方式,包括日期格式.语言.限制选择日期范围.添加相关按钮以及其它导航等. <script ...
- 日历插件js,jquery
常用的日历插件 DatePicker My97DatePicker 文章来源:刘俊涛的博客 地址:http://www.cnblogs.com/lovebing 欢迎关注,有问题一起学习欢迎留言. ...
- Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
Bootstrap时间日历插件bootstrap-datetimepicker配置与应用小结 by:授客 QQ:1033553122 1. 测试环境 win7 JQuery-3.2.1.min ...
- Jquery datepicker 时间插件使用 js 时间相加,相减
$(document).ready(function(){ //输入框事件 $('#probation').bind('input propertychange', function() { var ...
随机推荐
- Ubuntu 12.04使用uginx+fastcgi-mono-server2部署asp.net 网站
Ubuntu 12.04使用uginx+fastcgi-mono-server2部署asp.net 网站 1.安装nginx和mono-fastcgi-server2 sodu apt-get in ...
- Largest Rectangle in a Histogram (最大子矩阵)
hdu 1506 A histogram is a polygon composed of a sequence of rectangles aligned at a common base line ...
- A vectorized example
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture4.pdf
- oracle chain
[oracle@tyger dbs]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Tue May 6 13:02 ...
- dva+antd写的一个react例子--服务器nginx 的配置
location ^~ /crm { rewrite ^/crm/(.*)(\.js|\.css|\.png|\.jpg|\.jpeg|\.gif|index\.php|robots\.txt)$ / ...
- LeetCode:移除K位数字【402】
LeetCode:移除K位数字[402] 题目描述 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. nu ...
- NPM安装配置
http://www.tuicool.com/articles/mmYZBn http://npm.taobao.org/ 安装Nodejs后即可开始NPM之旅了,新建一个package.json或者 ...
- 剑指offer——不能被继承的类
方法一:通过将类的构造函数和析构函数声明成private来防止子类继承.声明静态的方法来构造和析构类的对象. 但是用起来不是很方便.只能得到在堆上的实例,而不能得到在栈上的实例. 方法二:构造辅助类C ...
- DB2常见错误
+098 01568 动态SQL语句用分号结束+100 02000 没有找到满足SQL语句的行+110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统+111 0159 ...
- STL 之map解决 Message Flood(原字典树问题)
Message Flood Time ...