$(function () { (function ($) { $.fn.jalendar = function (options) { var settings = $.extend({ customDay: new Date(), color: '#65c2c0', lang: 'CN' }, options); // Languages var dayNames = {}; var monthNames = {}; var lAddEvent = {}; var lAllDay = {}; var lTotalEvents = {}; var lEvent = {}; dayNames['CN'] = new Array('一', '二', '三', '四', '五', '六', '日'); dayNames['EN'] = new Array('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'); monthNames['CN'] = new Array('一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'); monthNames['EN'] = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); lAddEvent['CN'] = '添加新事件'; lAddEvent['EN'] = 'Add New Event'; lAllDay['CN'] = '全天'; lAllDay['EN'] = 'All Day'; lTotalEvents['CN'] = '本月事件总计: '; lTotalEvents['EN'] = 'Total Events in This Month: '; lEvent['CN'] = 'Event(s)'; lEvent['EN'] = 'Event(s)'; var $this = $(this); var div = function (e, classN) { return $(document.createElement(e)).addClass(classN); }; var clockHour = []; var clockMin = []; for (var i=0;i<24;i++ ){ clockHour.push(div('div', 'option').text(i)) } for (var i=0;i<59;i+=5 ){ clockMin.push(div('div', 'option').text(i)) } // HTML Tree $this.append(//初始化日历 div('div', 'jalendar-wood').append( div('div', 'jalendar-pages').append( div('div', 'header').css('background-color', settings.color).append( div('a', 'prv-m'), div('h1'), div('a', 'nxt-m'), div('div', 'day-names') ), /* div('div', 'total-bar').html( lTotalEvents[settings.lang] + ''),*/ div('div', 'days'), div('div').html("")//存放查询月份 ) ) ); // Adding day boxes for (var i = 0; i < 42; i++) { $this.find('.days').append(div('div', 'day')); } // Adding day names fields for (var i = 0; i < 7; i++) { $this.find('.day-names').append(div('h2').text(dayNames[settings.lang][i])); } var d = new Date(settings.customDay); var year = d.getFullYear(); var date = d.getDate(); var month = d.getMonth(); var isLeapYear = function(year1) { var f = new Date(); f.setYear(year1); f.setMonth(1); f.setDate(29); return f.getDate() == 29; }; var feb; var febCalc = function(feb) { if (isLeapYear(year) === true) { feb = 29; } else { feb = 28; } return feb; }; var monthDays = new Array(31, febCalc(feb), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); function calcMonth() { $("#choiseMonth").val(year+'-'+(month+1)+'-1 00:00:00'); monthDays[1] = febCalc(feb); var weekStart = new Date(); weekStart.setFullYear(year, month, 0); var startDay = weekStart.getDay(); $this.find('.header h1').html(monthNames[settings.lang][month] + ' ' + year); $this.find('.day').html(' '); $this.find('.day').removeClass('this-month'); $this.find('.day').removeClass('ui-reddot ui-reddot-static'); for (var i = 1; i <= monthDays[month]; i++) { startDay++; $this.find('.day').eq(startDay-1).addClass('this-month').attr('data-date', year+'-'+(month+1)+'-'+ i).html(i); } if ( month == d.getMonth() ) { $this.find('.day.this-month').removeClass('today').eq(date-1).addClass('today').css('color', settings.color); } else { $this.find('.day.this-month').removeClass('today').attr('style', ''); } getTaskListAndPlanList(); } calcMonth(); var arrows = new Array ($this.find('.prv-m'), $this.find('.nxt-m')); function prevAddEvent() { $this.find('.day').removeClass('selected').removeAttr('style'); $this.find('.today').css('color', settings.color); } arrows[1].on('click', function () {//下个月 if ( month >= 11 ) { month = 0; year++; } else { month++; } calcMonth(); prevAddEvent(); }); arrows[0].on('click', function () {//上个月 dayClick = $this.find('.this-month'); if ( month === 0 ) { month = 11; year--; } else { month--; } calcMonth(); prevAddEvent(); }); $this.on('click', '.this-month', function () {//单击选择日期事件 prevAddEvent(); $(this).addClass('selected').css({'background-color': settings.color}); getLists(); }); }; }(jQuery)); });