⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendar.js

📁 原名JSPackager
💻 JS
📖 第 1 页 / 共 3 页
字号:
if (workingDate.getMonth() + 1 == month && workingDate.getDate() == day) {renderer = rArray[2];this.renderStack.splice(r, 1);}break;case YAHOO.widget.Calendar_Core.RANGE:var date1 = rArray[1][0];var date2 = rArray[1][1];var d1month = date1[1];var d1day = date1[2];var d1year = date1[0];var d1 = new Date(d1year, d1month - 1, d1day);var d2month = date2[1];var d2day = date2[2];var d2year = date2[0];var d2 = new Date(d2year, d2month - 1, d2day);if (workingDate.getTime() >= d1.getTime() && workingDate.getTime() <= d2.getTime()) {renderer = rArray[2];if (workingDate.getTime() == d2.getTime()) {this.renderStack.splice(r, 1);}}break;case YAHOO.widget.Calendar_Core.WEEKDAY:var weekday = rArray[1][0];if (workingDate.getDay() + 1 == weekday) {renderer = rArray[2];}break;case YAHOO.widget.Calendar_Core.MONTH:month = rArray[1][0];if (workingDate.getMonth() + 1 == month) {renderer = rArray[2];}break;}if (renderer) {cellRenderers[cellRenderers.length] = renderer;}}}if (this._indexOfSelectedFieldArray([workingDate.getFullYear(), workingDate.getMonth() + 1, workingDate.getDate()]) > -1) {cellRenderers[cellRenderers.length] = this.renderCellStyleSelected;}if (this.minDate) {this.minDate = YAHOO.widget.DateMath.clearTime(this.minDate);}if (this.maxDate) {this.maxDate = YAHOO.widget.DateMath.clearTime(this.maxDate);}if ((this.minDate && (workingDate.getTime() < this.minDate.getTime())) || (this.maxDate && (workingDate.getTime() > this.maxDate.getTime()))) {cellRenderers[cellRenderers.length] = this.renderOutOfBoundsDate;} else {cellRenderers[cellRenderers.length] = this.renderCellDefault;}for (var x = 0; x < cellRenderers.length; ++x) {var ren = cellRenderers[x];if (ren.call(this, workingDate, cell) == YAHOO.widget.Calendar_Core.STOP_RENDER) {break;}}workingDate = YAHOO.widget.DateMath.add(workingDate, YAHOO.widget.DateMath.DAY, 1);if (workingDate.getDay() == this.Options.START_WEEKDAY) {weekRowIndex += 1;}YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL);if (c >= 0 && c <= 6) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_TOP);}if ((c % 7) == 0) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_LEFT);}if (((c + 1) % 7) == 0) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_RIGHT);}var postDays = this.postMonthDays;if (postDays >= 7 && this.Options.HIDE_BLANK_WEEKS) {var blankWeeks = Math.floor(postDays / 7);for (var p = 0; p < blankWeeks; ++p) {postDays -= 7;}}if (c >= ((this.preMonthDays + postDays + this.monthDays) - 7)) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_BOTTOM);}}};YAHOO.widget.Calendar_Core.prototype.renderFooter = function () {};YAHOO.widget.Calendar_Core.prototype._unload = function (e, cal) {for (var c in cal.cells) {c = null;}cal.cells = null;cal.tbody = null;cal.oDomContainer = null;cal.table = null;cal.headerCell = null;cal = null;};YAHOO.widget.Calendar_Core.prototype.renderOutOfBoundsDate = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_OOB);cell.innerHTML = workingDate.getDate();return YAHOO.widget.Calendar_Core.STOP_RENDER;};YAHOO.widget.Calendar_Core.prototype.renderRowHeader = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_ROW_HEADER);var useYear = this.pageDate.getFullYear();if (!YAHOO.widget.DateMath.isYearOverlapWeek(workingDate)) {useYear = workingDate.getFullYear();}var weekNum = YAHOO.widget.DateMath.getWeekNumber(workingDate, useYear, this.Options.START_WEEKDAY);cell.innerHTML = weekNum;if (this.isDateOOM(workingDate) && !YAHOO.widget.DateMath.isMonthOverlapWeek(workingDate)) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_OOM);}};YAHOO.widget.Calendar_Core.prototype.renderRowFooter = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_ROW_FOOTER);if (this.isDateOOM(workingDate) && !YAHOO.widget.DateMath.isMonthOverlapWeek(workingDate)) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_OOM);}};YAHOO.widget.Calendar_Core.prototype.renderCellDefault = function (workingDate, cell) {cell.innerHTML = "";var link = document.createElement("a");link.href = "javascript:void(null);";link.name = this.id + "__" + workingDate.getFullYear() + "_" + (workingDate.getMonth() + 1) + "_" + workingDate.getDate();link.appendChild(document.createTextNode(this.buildDayLabel(workingDate)));cell.appendChild(link);};YAHOO.widget.Calendar_Core.prototype.renderCellStyleHighlight1 = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT1);};YAHOO.widget.Calendar_Core.prototype.renderCellStyleHighlight2 = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT2);};YAHOO.widget.Calendar_Core.prototype.renderCellStyleHighlight3 = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT3);};YAHOO.widget.Calendar_Core.prototype.renderCellStyleHighlight4 = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_HIGHLIGHT4);};YAHOO.widget.Calendar_Core.prototype.renderCellStyleToday = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_TODAY);};YAHOO.widget.Calendar_Core.prototype.renderCellStyleSelected = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_SELECTED);};YAHOO.widget.Calendar_Core.prototype.renderCellNotThisMonth = function (workingDate, cell) {YAHOO.util.Dom.addClass(cell, this.Style.CSS_CELL_OOM);cell.innerHTML = workingDate.getDate();return YAHOO.widget.Calendar_Core.STOP_RENDER;};YAHOO.widget.Calendar_Core.prototype.renderBodyCellRestricted = function (workingDate, cell) {YAHOO.widget.Calendar_Core.setCssClasses(cell, [this.Style.CSS_CELL, this.Style.CSS_CELL_RESTRICTED]);cell.innerHTML = workingDate.getDate();return YAHOO.widget.Calendar_Core.STOP_RENDER;};YAHOO.widget.Calendar_Core.prototype.addMonths = function (count) {this.pageDate = YAHOO.widget.DateMath.add(this.pageDate, YAHOO.widget.DateMath.MONTH, count);this.resetRenderers();this.onChangePage();};YAHOO.widget.Calendar_Core.prototype.subtractMonths = function (count) {this.pageDate = YAHOO.widget.DateMath.subtract(this.pageDate, YAHOO.widget.DateMath.MONTH, count);this.resetRenderers();this.onChangePage();};YAHOO.widget.Calendar_Core.prototype.addYears = function (count) {this.pageDate = YAHOO.widget.DateMath.add(this.pageDate, YAHOO.widget.DateMath.YEAR, count);this.resetRenderers();this.onChangePage();};YAHOO.widget.Calendar_Core.prototype.subtractYears = function (count) {this.pageDate = YAHOO.widget.DateMath.subtract(this.pageDate, YAHOO.widget.DateMath.YEAR, count);this.resetRenderers();this.onChangePage();};YAHOO.widget.Calendar_Core.prototype.nextMonth = function () {this.addMonths(1);};YAHOO.widget.Calendar_Core.prototype.previousMonth = function () {this.subtractMonths(1);};YAHOO.widget.Calendar_Core.prototype.nextYear = function () {this.addYears(1);};YAHOO.widget.Calendar_Core.prototype.previousYear = function () {this.subtractYears(1);};YAHOO.widget.Calendar_Core.prototype.reset = function () {this.selectedDates.length = 0;this.selectedDates = this._selectedDates.concat();this.pageDate = new Date(this._pageDate.getTime());this.onReset();};YAHOO.widget.Calendar_Core.prototype.clear = function () {this.selectedDates.length = 0;this.pageDate = new Date(this.today.getTime());this.onClear();};YAHOO.widget.Calendar_Core.prototype.select = function (date) {this.onBeforeSelect();var aToBeSelected = this._toFieldArray(date);for (var a = 0; a < aToBeSelected.length; ++a) {var toSelect = aToBeSelected[a];if (this._indexOfSelectedFieldArray(toSelect) == -1) {this.selectedDates[this.selectedDates.length] = toSelect;}}if (this.parent) {this.parent.sync(this);}this.onSelect();return this.getSelectedDates();};YAHOO.widget.Calendar_Core.prototype.selectCell = function (cellIndex) {this.onBeforeSelect();this.cells = this.tbody.getElementsByTagName("TD");var cell = this.cells[cellIndex];var cellDate = this.cellDates[cellIndex];var dCellDate = this._toDate(cellDate);var selectDate = cellDate.concat();this.selectedDates.push(selectDate);if (this.parent) {this.parent.sync(this);}this.renderCellStyleSelected(dCellDate, cell);this.onSelect();this.doCellMouseOut.call(cell, null, this);return this.getSelectedDates();};YAHOO.widget.Calendar_Core.prototype.deselect = function (date) {this.onBeforeDeselect();var aToBeSelected = this._toFieldArray(date);for (var a = 0; a < aToBeSelected.length; ++a) {var toSelect = aToBeSelected[a];var index = this._indexOfSelectedFieldArray(toSelect);if (index != -1) {this.selectedDates.splice(index, 1);}}if (this.parent) {this.parent.sync(this);}this.onDeselect();return this.getSelectedDates();};YAHOO.widget.Calendar_Core.prototype.deselectCell = function (i) {this.onBeforeDeselect();this.cells = this.tbody.getElementsByTagName("TD");var cell = this.cells[i];var cellDate = this.cellDates[i];var cellDateIndex = this._indexOfSelectedFieldArray(cellDate);var dCellDate = this._toDate(cellDate);var selectDate = cellDate.concat();if (cellDateIndex > -1) {if (this.pageDate.getMonth() == dCellDate.getMonth() && this.pageDate.getFullYear() == dCellDate.getFullYear()) {YAHOO.util.Dom.removeClass(cell, this.Style.CSS_CELL_SELECTED);}this.selectedDates.splice(cellDateIndex, 1);}if (this.parent) {this.parent.sync(this);}this.onDeselect();return this.getSelectedDates();};YAHOO.widget.Calendar_Core.prototype.deselectAll = function () {this.onBeforeDeselect();var count = this.selectedDates.length;this.selectedDates.length = 0;if (this.parent) {this.parent.sync(this);}if (count > 0) {this.onDeselect();}return this.getSelectedDates();};YAHOO.widget.Calendar_Core.prototype._toFieldArray = function (date) {var returnDate = new Array();if (date instanceof Date) {returnDate = [[date.getFullYear(), date.getMonth() + 1, date.getDate()]];} else {if (typeof date == "string") {returnDate = this._parseDates(date);} else {if (date instanceof Array) {for (var i = 0; i < date.length; ++i) {var d = date[i];returnDate[returnDate.length] = [d.getFullYear(), d.getMonth() + 1, d.getDate()];}}}}return returnDate;};YAHOO.widget.Calendar_Core.prototype._toDate = function (dateFieldArray) {if (dateFieldArray instanceof Date) {return dateFieldArray;} else {return new Date(dateFieldArray[0], dateFieldArray[1] - 1, dateFieldArray[2]);}};YAHOO.widget.Calendar_Core.prototype._fieldArraysAreEqual = function (array1, array2) {var match = false;if (array1[0] == array2[0] && array1[1] == array2[1] && array1[2] == array2[2]) {match = true;}return match;};YAHOO.widget.Calendar_Core.prototype._indexOfSelectedFieldArray = function (find) {var selected = -1;for (var s = 0; s < this.selectedDates.length; ++s) {var sArray = this.selectedDates[s];if (find[0] == sArray[0] && find[1] == sArray[1] && find[2] == sArray[2]) {selected = s;break;}}return selected;};YAHOO.widget.Calendar_Core.prototype.isDateOOM = function (date) {var isOOM = false;if (date.getMonth() != this.pageDate.getMonth()) {isOOM = true;}return isOOM;};YAHOO.widget.Calendar_Core.prototype.onBeforeSelect = function () {if (!this.Options.MULTI_SELECT) {this.clearAllBodyCellStyles(this.Style.CSS_CELL_SELECTED);this.deselectAll();}};YAHOO.widget.Calendar_Core.prototype.onSelect = function () {};YAHOO.widget.Calendar_Core.prototype.onBeforeDeselect = function () {};YAHOO.widget.Calendar_Core.prototype.onDeselect = function () {};YAHOO.widget.Calendar_Core.prototype.onChangePage = function () {var me = this;this.renderHeader();if (this.renderProcId) {clearTimeout(this.renderProcId);}this.renderProcId = setTimeout(function () {me.render();me.renderProcId = null;}, 1);};YAHOO.widget.Calendar_Core.prototype.onRender = function () {};YAHOO.widget.Calendar_Core.prototype.onReset = function () {this.render();};YAHOO.widget.Calendar_Core.prototype.onClear = function () {this.render();};YAHOO.widget.Calendar_Core.prototype.validate = function () {return true;};YAHOO.widget.Calendar_Core.prototype._parseDate = function (sDate) {var aDate = sDate.split(this.Locale.DATE_FIELD_DELIMITER);var rArray;if (aDate.length == 2) {rArray = [aDate[this.Locale.MD_MONTH_POSITION - 1], aDate[this.Locale.MD_DAY_POSITION - 1]];rArray.type = YAHOO.widget.Calendar_Core.MONTH_DAY;} else {rArray = [aDate[this.Locale.MDY_YEAR_POSITION - 1], aDate[this.Locale.MDY_MONTH_POSITION - 1], aDate[this.Locale.MDY_DAY_POSITION - 1]];rArray.type = YAHOO.widget.Calendar_Core.DATE;}return rArray;};YAHOO.widget.Calendar_Core.prototype._parseDates = function (sDates) {var aReturn = new Array();var aDates = sDates.split(this.Locale.DATE_DELIMITER);for (var d = 0; d < aDates.length; ++d) {var sDate = aDates[d];if (sDate.indexOf(this.Locale.DATE_RANGE_DELIMITER) != -1) {var aRange = sDate.split(this.Locale.DATE_RANGE_DELIMITER);var dateStart = this._parseDate(aRange[0]);var dateEnd = this._parseDate(aRange[1]);var fullRange = this._parseRange(dateStart, dateEnd);aReturn = aReturn.concat(fullRange);} else {var aDate = this._parseDate(sDate);aReturn.push(aDate);}}return aReturn;};YAHOO.widget.Calendar_Core.prototype._parseRange = function (startDate, endDate) {var dStart = new Date(startDate[0], startDate[1] - 1, startDate[2]);var dCurrent = YAHOO.widget.DateMath.add(new Date(startDate[0], startDate[1] - 1, startDate[2]), YAHOO.widget.DateMath.DAY, 1);var dEnd = new Date(endDate[0], endDate[1] - 1, endDate[2]);var results = new Array();results.push(startDate);while (dCurrent.getTime() <= dEnd.getTime()) {results.push([dCurrent.getFullYear(), dCurrent.getMonth() + 1, dCurrent.getDate()]);dCurrent = YAHOO.widget.DateMath.add(dCurrent, YAHOO.widget.DateMath.DAY, 1);}return results;};YAHOO.widget.Calendar_Core.prototype.resetRenderers = function () {this.renderStack = this._renderStack.concat();};YAHOO.widget.Calendar_Core.prototype.clearElement = function (cell) {cell.innerHTML = "&nbsp;";cell.className = "";};YAHOO.widget.Calendar_Core.prototype.addRenderer = function (sDates, fnRender) {var aDates = this._parseDates(sDates);for (var i = 0; i < aDates.length; ++i) {var aDate = aDates[i];if (aDate.length == 2) {if (aDate[0] instanceof Array) {this._addRenderer(YAHOO.widget.Calendar_Core.RANGE, aDate, fnRender);} else {this._addRenderer(YAHOO.widget.Calendar_Core.MONTH_DAY, aDate, fnRender);}} else {if (aDate.length == 3) {this._addRenderer(YAHOO.widget.Calendar_Core.DATE, aDate, fnRender);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -