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

📄 calendar.js

📁 用最近的dojo1.2.1制作前端的ajax购书网站
💻 JS
字号:
/*	Copyright (c) 2004-2008, The Dojo Foundation All Rights Reserved.	Available via Academic Free License >= 2.1 OR the modified BSD license.	see: http://dojotoolkit.org/license for details*/if(!dojo._hasResource["dojox.widget.Calendar"]){dojo._hasResource["dojox.widget.Calendar"]=true;dojo.provide("dojox.widget.Calendar");dojo.experimental("dojox.widget.Calendar");dojo.require("dijit._Calendar");dojo.require("dijit._Container");dojo.declare("dojox.widget._CalendarBase",[dijit._Widget,dijit._Templated,dijit._Container],{templateString:"<div class=\"dojoxCalendar\">\n    <div tabindex=\"0\" class=\"dojoxCalendarContainer\" style=\"visibility: visible; width: 180px; heightL 138px;\" dojoAttachPoint=\"container\">\n\t\t<div style=\"display:none\">\n\t\t\t<div dojoAttachPoint=\"previousYearLabelNode\"></div>\n\t\t\t<div dojoAttachPoint=\"nextYearLabelNode\"></div>\n\t\t\t<div dojoAttachPoint=\"monthLabelSpacer\"></div>\n\t\t</div>\n        <div class=\"dojoxCalendarHeader\">\n            <div>\n                <div class=\"dojoxCalendarDecrease\" dojoAttachPoint=\"decrementMonth\"></div>\n            </div>\n            <div class=\"\">\n                <div class=\"dojoxCalendarIncrease\" dojoAttachPoint=\"incrementMonth\"></div>\n            </div>\n            <div class=\"dojoxCalendarTitle\" dojoAttachPoint=\"header\" dojoAttachEvent=\"onclick: onHeaderClick\">\n            </div>\n        </div>\n        <div class=\"dojoxCalendarBody\" dojoAttachPoint=\"containerNode\"></div>\n        <div class=\"\">\n            <div class=\"dojoxCalendarFooter\" dojoAttachPoint=\"footer\">                        \n            </div>\n        </div>\n    </div>\n</div>\n",_views:null,useFx:true,widgetsInTemplate:true,value:null,constructor:function(){this._views=[];this.value=this.value||new Date();},postCreate:function(){this._height=dojo.style(this.containerNode,"height");this.displayMonth=new Date(this.value);var _1={parent:this,getValue:dojo.hitch(this,function(){return new Date(this.displayMonth);}),getLang:dojo.hitch(this,function(){return this.lang;}),isDisabledDate:dojo.hitch(this,this.isDisabledDate),getClassForDate:dojo.hitch(this,this.getClassForDate),addFx:this.useFx?dojo.hitch(this,this.addFx):function(){}};dojo.forEach(this._views,function(_2){var _3=document.createElement("div");var _4=new _2(_1,_3);this.addChild(_4);this.header.appendChild(_4.getHeader());dojo.style(_4.getHeader(),"display","none");dojo.style(_4.domNode,"visibility","hidden");dojo.connect(_4,"onValueSelected",this,"_onDateSelected");_4.setValue(this.value);},this);if(this._views.length<2){dojo.style(this.header,"cursor","auto");}this.inherited(arguments);this._children=this.getChildren();this._currentChild=0;var _5=new Date();this.footer.innerHTML="Today: "+dojo.date.locale.format(_5,{formatLength:"full",selector:"date",locale:this.lang});dojo.connect(this.footer,"onclick",this,"goToToday");dojo.style(this._children[0].domNode,"top","0px");dojo.style(this._children[0].domNode,"visibility","visible");dojo.style(this._children[0].getHeader(),"display","");var _6=this;var _7=function(_8,_9,_a){dijit.typematic.addMouseListener(_6[_8],_6,function(_b){if(_b>=0){_6._adjustDisplay(_9,_a);}},0.8,500);};_7("incrementMonth","month",1);_7("decrementMonth","month",-1);},addFx:function(_c,_d){},setValue:function(_e){if(!this.value||dojo.date.compare(_e,this.value)){_e=new Date(_e);this.displayMonth=new Date(_e);if(!this.isDisabledDate(_e,this.lang)){this.value=_e;this.value.setHours(0,0,0,0);this.onChange(this.value);}this._children[this._currentChild].setValue(this.value);return true;}return false;},isDisabledDate:function(_f,_10){},onValueSelected:function(_11){},_onDateSelected:function(_12,_13){this.displayMonth=_12;if(this.setValue(_12)){if(!this._transitionVert(-1)){if(!_13&&_13!==0){_13=this.value;}this.onValueSelected(_13);}}},onChange:function(_14){},onHeaderClick:function(e){this._transitionVert(1);},goToToday:function(){this.setValue(new Date());this.onValueSelected(this.value);},_transitionVert:function(_16){var _17=this._children[this._currentChild];var _18=this._children[this._currentChild+_16];if(!_18){return false;}var _19=dojo.style(this.containerNode,"height");_18.setValue(this.displayMonth);dojo.style(_17.header,"display","none");dojo.style(_18.header,"display","");dojo.style(_18.domNode,"top",(_19*-1)+"px");dojo.style(_18.domNode,"visibility","visible");this._currentChild+=_16;var _1a=_19*_16;var _1b=0;dojo.style(_18.domNode,"top",(_1a*-1)+"px");var _1c=dojo.animateProperty({node:_17.domNode,properties:{top:_1a}});var _1d=dojo.animateProperty({node:_18.domNode,properties:{top:_1b}});_1c.play();_1d.play();return true;},_slideTable:function(_1e,_1f,_20){var _21=_1e.domNode;var _22=_21.cloneNode(true);var _23=dojo.style(_21,"width");_21.parentNode.appendChild(_22);dojo.style(_21,"left",(_23*_1f)+"px");_20();var _24=dojo.animateProperty({node:_22,properties:{left:_23*_1f*-1},duration:500,onEnd:function(){_22.parentNode.removeChild(_22);}});var _25=dojo.animateProperty({node:_21,properties:{left:0},duration:500});_24.play();_25.play();},_addView:function(_26){this._views.push(_26);},getClassForDate:function(_27,_28){},_adjustDisplay:function(_29,_2a,_2b){var _2c=this._children[this._currentChild];var _2d=this.displayMonth=_2c.adjustDate(this.displayMonth,_2a);this._slideTable(_2c,_2a,function(){_2c.setValue(_2d);});}});dojo.declare("dojox.widget._CalendarView",dijit._Widget,{headerClass:"",cloneClass:function(_2e,n){var _30=dojo.query(_2e,this.domNode)[0];for(var i=0;i<n;i++){_30.parentNode.appendChild(_30.cloneNode(true));}},_setText:function(_32,_33){while(_32.firstChild){_32.removeChild(_32.firstChild);}_32.appendChild(dojo.doc.createTextNode(_33));},getHeader:function(){if(!this.header){this.header=document.createElement("div");dojo.addClass(this.header,this.headerClass);}return this.header;},onValueSelected:function(_34){},adjustDate:function(_35,_36){return dojo.date.add(_35,this.datePart,_36);}});dojo.declare("dojox.widget._CalendarDay",null,{parent:null,constructor:function(){this._addView(dojox.widget._CalendarDayView);}});dojo.declare("dojox.widget._CalendarDayView",[dojox.widget._CalendarView,dijit._Templated],{templateString:"<div class=\"dijitCalendarDayLabels\" style=\"left: 0px;\" dojoAttachPoint=\"dayContainer\">\n\t<div dojoAttachPoint=\"header\">\n\t\t<div dojoAttachPoint=\"monthAndYearHeader\">\n\t        <span dojoAttachPoint=\"monthLabelNode\" class=\"dojoxCalendarMonthLabelNode\"></span>\n\t\t\t<span dojoAttachPoint=\"headerComma\" class=\"dojoxCalendarComma\">,</span>\n\t\t\t<span dojoAttachPoint=\"yearLabelNode\"></span>\n\t\t</div>\n\t</div>\n    <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"margin: auto;\">\n        <thead>\n            <tr>\n                <td class=\"dijitCalendarDayLabelTemplate\"><div class=\"dijitCalendarDayLabel\"></div></td>\n            </tr>\n        </thead>\n        <tbody dojoAttachEvent=\"onclick: _onDayClick\">\n            <tr class=\"dijitCalendarWeekTemplate\">\n                <td class=\"dojoxCalendarNextMonth dijitCalendarDateTemplate\">\n                    <div class=\"dijitCalendarDateLabel\"></div>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</div>\n",datePart:"month",dayWidth:"narrow",postCreate:function(){this.cloneClass(".dijitCalendarDayLabelTemplate",6);this.cloneClass(".dijitCalendarDateTemplate",6);this.cloneClass(".dijitCalendarWeekTemplate",5);var _37=dojo.date.locale.getNames("days",this.dayWidth,"standAlone",this.getLang());var _38=dojo.cldr.supplemental.getFirstDayOfWeek(this.getLang());dojo.query(".dijitCalendarDayLabel",this.domNode).forEach(function(_39,i){this._setText(_39,_37[(i+_38)%7]);},this);this.addFx(".dijitCalendarDateTemplate div",this.domNode);},_onDayClick:function(e){var _3c=this.getValue();var p=e.target.parentNode;var c="dijitCalendar";var d=dojo.hasClass(p,c+"PreviousMonth")?-1:(dojo.hasClass(p,c+"NextMonth")?1:0);if(d){_3c=dojo.date.add(_3c,"month",d);}_3c.setDate(e.target._date);this.value=_3c;this.parent._onDateSelected(_3c);},setValue:function(_40){this._populateDays();},_populateDays:function(){var _41=this.getValue();_41.setDate(1);var _42=_41.getDay();var _43=dojo.date.getDaysInMonth(_41);var _44=dojo.date.getDaysInMonth(dojo.date.add(_41,"month",-1));var _45=new Date();var _46=this.value;var _47=dojo.cldr.supplemental.getFirstDayOfWeek(this.getLang());if(_47>_42){_47-=7;}dojo.query(".dijitCalendarDateTemplate",this.domNode).forEach(function(_48,i){i+=_47;var _4a=new Date(_41);var _4b,_4c="dijitCalendar",adj=0;if(i<_42){_4b=_44-_42+i+1;adj=-1;_4c+="Previous";}else{if(i>=(_42+_43)){_4b=i-_42-_43+1;adj=1;_4c+="Next";}else{_4b=i-_42+1;_4c+="Current";}}if(adj){_4a=dojo.date.add(_4a,"month",adj);}_4a.setDate(_4b);if(!dojo.date.compare(_4a,_45,"date")){_4c="dijitCalendarCurrentDate "+_4c;}if(!dojo.date.compare(_4a,_46,"date")){_4c="dijitCalendarSelectedDate "+_4c;}if(this.isDisabledDate(_4a,this.getLang())){_4c=" dijitCalendarDisabledDate "+_4c;}var _4e=this.getClassForDate(_4a,this.getLang());if(_4e){_4c+=_4e+" "+_4c;}_48.className=_4c+"Month dijitCalendarDateTemplate";_48.dijitDateValue=_4a.valueOf();var _4f=dojo.query(".dijitCalendarDateLabel",_48)[0];this._setText(_4f,_4a.getDate());_4f._date=_4a.getDate();},this);var _50=dojo.date.locale.getNames("months","wide","standAlone",this.getLang());this._setText(this.monthLabelNode,_50[_41.getMonth()]);this._setText(this.yearLabelNode,_41.getFullYear());}});dojo.declare("dojox.widget._CalendarMonth",null,{headerClass:"dojoxCalendarYearHeader",constructor:function(){this._addView(dojox.widget._CalendarMonthView);}});dojo.declare("dojox.widget._CalendarMonthView",[dojox.widget._CalendarView,dijit._Templated],{templateString:"<div class=\"dojoxCalendarMonthLabels\" style=\"left: 0px;\"  \n\tdojoAttachPoint=\"monthContainer\" dojoAttachEvent=\"onclick: onClick\">\n    <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"margin: auto;\">\n        <tbody>\n            <tr class=\"dojoxCalendarMonthGroupTemplate\">\n                <td class=\"dojoxCalendarMonthTemplate\">\n                    <div class=\"dojoxCalendarMonthLabel\"></div>\n                </td>\n             </tr>\n        </tbody>\n    </table>\n</div>\n",datePart:"year",postCreate:function(){this.cloneClass(".dojoxCalendarMonthTemplate",3);this.cloneClass(".dojoxCalendarMonthGroupTemplate",2);this._populateMonths();this.addFx(".dojoxCalendarMonthLabel",this.domNode);},setValue:function(_51){this.header.innerHTML=_51.getFullYear();},_getMonthNames:function(_52){this._monthNames=this._monthNames||dojo.date.locale.getNames("months",_52,"standAlone",this.getLang());return this._monthNames;},_populateMonths:function(){var _53=this._getMonthNames("abbr");dojo.query(".dojoxCalendarMonthLabel",this.monthContainer).forEach(dojo.hitch(this,function(_54,cnt){this._setText(_54,_53[cnt]);}));},onClick:function(evt){if(!dojo.hasClass(evt.target,"dojoxCalendarMonthLabel")){dojo.stopEvent(evt);return;}var _57=evt.target.parentNode.cellIndex+(evt.target.parentNode.parentNode.rowIndex*4);var _58=this.getValue();_58.setMonth(_57);this.onValueSelected(_58,_57);}});dojo.declare("dojox.widget._CalendarYear",null,{parent:null,constructor:function(){this._addView(dojox.widget._CalendarYearView);}});dojo.declare("dojox.widget._CalendarYearView",[dojox.widget._CalendarView,dijit._Templated],{templateString:"<div class=\"dojoxCalendarYearLabels\" style=\"left: 0px;\" dojoAttachPoint=\"yearContainer\">\n    <table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" style=\"margin: auto;\" dojoAttachEvent=\"onclick: onClick\">\n        <tbody>\n            <tr class=\"dojoxCalendarYearGroupTemplate\">\n                <td class=\"dojoxCalendarNextMonth dojoxCalendarYearTemplate\">\n                    <div class=\"dojoxCalendarYearLabel\">\n                    </div>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</div>\n",postCreate:function(){this.cloneClass(".dojoxCalendarYearTemplate",3);this.cloneClass(".dojoxCalendarYearGroupTemplate",2);this._populateYears();this.addFx(".dojoxCalendarYearLabel",this.domNode);},setValue:function(_59){this._populateYears(_59.getFullYear());},_populateYears:function(_5a){if(this._displayedYear&&_5a&&_5a>=this._displayedYear-5&&_5a<=this._displayedYear+6){return;}this._displayedYear=_5a||this.getValue().getFullYear();var _5b=this._displayedYear-5;dojo.query(".dojoxCalendarYearLabel",this.yearContainer).forEach(dojo.hitch(this,function(_5c,cnt){this._setText(_5c,_5b+(cnt));}));this._setText(this.getHeader(),_5b+" - "+(_5b+11));},adjustDate:function(_5e,_5f){return dojo.date.add(_5e,"year",_5f*12);},onClick:function(evt){if(!dojo.hasClass(evt.target,"dojoxCalendarYearLabel")){dojo.stopEvent(evt);return;}var _61=Number(evt.target.innerHTML);var _62=this.getValue();_62.setYear(_61);this.onValueSelected(_62,_61);}});dojo.declare("dojox.widget.Calendar",[dojox.widget._CalendarBase,dojox.widget._CalendarDay,dojox.widget._CalendarMonth,dojox.widget._CalendarYear],{});dojo.declare("dojox.widget.DailyCalendar",[dojox.widget._CalendarBase,dojox.widget._CalendarDay],{});dojo.declare("dojox.widget.MonthlyCalendar",[dojox.widget._CalendarBase,dojox.widget._CalendarMonth],{});dojo.declare("dojox.widget.YearlyCalendar",[dojox.widget._CalendarBase,dojox.widget._CalendarYear],{});}

⌨️ 快捷键说明

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