jquery日历插件,自定义点击事件,记录信息,编辑假日安排等方法,使用简单,版本1.0
该插件还使用了sysui.js框架插件进行配置,该js具体说明在以后会发布,请关注我的网站
基础引用
1 2 3 | < link rel = "stylesheet" href = "css/record.css" > < script type = "text/javascript" src = "js/jquery-2.1.1.min.js" ></ script > < script type = "text/javascript" src = "js/sys-calendar.js" ></ script > |
引入3个文件,一个css样式文件,两个js文件一个jquery库,另外一个就是日历插件的js
基础html
1 2 3 4 5 6 | < div id = "calendar" ></ div >//根据id来显示 < script type = "text/javascript" > $("#calendar").calendar({ //参数设置 }) </ script > |
先为calendar准备一个容器,可以设置大小,也可以在options中设置,不设置的话自动设为默认
参数配置说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | < script type="text/javascript"> $("#calendar").calendar({ data: data, //获取记录数据 holiday: holidaydata, //规划假日时间 work:workdata,//规划上班时间 mode: "month",//显示模式,month为月份详细显示, year为年显示 width:600,//日历宽度,如果不填则默认全屏模式 showModeBtn: false,//是否显示月/年却换模式 showEvent: true,//设置年份显示记录信息,为true显示每月记录信息,为false不显示记录信息 newDate: "2018-04-1", //设置初始开始时间,默认不填为当前时间 cellClick: function(data, Event, me) { //点击每天的处理方法,用户自己编辑方法 //data 数据 // Event 当前事件 //me 方法集合 var module = document.body.querySelector(".calendar-box"); module ? module.parentNode.removeChild(module) : ""; if(data == undefined) { set.PromptBox("无历史记录", 2, false); } else { var mun = data.length; var box = document.createElement("div"); box.id = "calendar-box"; lay.el[0].appendChild(box).className = "calendar-box"; for(var i = 0; i < mun; i++) { var mousename = document.createElement("a"); mousename.className = "record_info"; mousename.href = "javascript:;"; box.appendChild(mousename).innerHTML = data[i].name; } var laybox = $(lay.el[0]).outerWidth(); var objTop = lay.getOffsetTop(set.$('#calendar-box')); //对象x位置 var objLeft =lay.getOffsetLeft(set.$('#calendar-box')); //对象y位置 var mouseX = me.clientX + document.body.scrollLeft; //鼠标x位置 var mouseY = me.clientY + document.body.scrollTop; //鼠标y位置 var objX = mouseX - objLeft; var objY = mouseY - objTop; box.style.cssText = "display:block" + "; left:" + objX + "px" + ";" + "top:" + objY + "px"; var infoh = $(".record_info").outerHeight()+10 * mun; var boxh = $(".calendar-box").outerHeight(); var boxgap = laybox - mouseX; var boxw = $(box).outerWidth(); if(boxgap <= boxw) { box.style.cssText = "display:block" + "; left:" + (objX - boxw) + "px" + ";" + "top:" + objY + "px"; } if(infoh < boxh) { box.style.cssText += 'height:' + infoh + 'px;'; } else { box.style.cssText += 'bottom:15px'; $(".calendar-box").niceScroll({ cursorcolor: "#dddddd", cursoropacitymax: 1, touchbehavior: false, cursorwidth: "3px", cursorborder: "0", cursorborderradius: "3px", }); } } }, monthClick: function(Event, nextMonth, opts, me) { // Event 当前事件 nextMonth月份,opts参数 ,me集合 //点击月份的处理方法 //开始月份第一天 var start = me._cloneDate(opts.newDate); start.setDate(1); // 获取当前月的最后一天 var date = new Date(); var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1); var oneDay = 1000 * 60 * 60 * 24; var end = new Date(nextMonthFirstDay - oneDay); var startDate = me.transferDate(start); // 日期变换 var endDate = me.transferDate(end); // 日期变换 var cycleData = [{ 'name': "145", 'startDate': "2020-2-09 15:31:29", 'type': "手机号" }, { 'name': "178956874", 'startDate': "2020-2-23 15:31:29", 'type': "手机号" }]//数据结构,以往记录数据,可通过ajax获取 me._refreshCalendar(opts.newDate, cycleData);//加载方法 } }) < /script> |
基础配置插件方法,改为简答的示例
数据格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | //记录保存格式 { 'name' : "145" , //名称 'startDate' : "2020-3-09 15:31:29" , //时间 'type' : "手机号" //类型 } //假日格式 { "holiday_name" : "春节" , //节日名称 "holiday_time" :[ "2020-1-24" , "2020-1-25" , "2020-1-26" , "2020-1-27" , "2020-1-28" , "2020-1-29" , "2020-1-30" , "2020-1-31" , "2020-2-1" , "2020-2-2" ] //节日时间} //工作时间格式 [ "2020-4-26" , "2020-5-9" , "2020-6-28" , "2020-9-27" , "2020-10-10" ] //直接编辑当前日期 |
json格式,该数据格式为定死的格式。
特别申明:
本站所有资源都是由网友投稿发布,或转载各大下载站,请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:lei1294551502@163.com