캘린더 알림 스타일은 3가지 카테고리로 나뉩니다. a.오늘 b. 이번 달의 프롬프트 스타일 c. 이번 달의 프롬프트 스타일 프롬프트가 있는 날짜 위에 마우스를 올리면 프롬프트 내용이 자동으로 나타납니다. 4. . . . . 크게 2가지 용도로 나누어집니다. 1. div 또는 기타 요소를 제공하고 컨테이너의 id를 Calendar에 전달합니다. 메소드 이름은 다음과 같습니다: show() 예: var cr = Calendar("div1"); cr.show( /*data - 이 배열은 선택 사항입니다. 프롬프트 함수 */ ) 2. input[type='text'] 요소를 제공하고 해당 요소의 id 를 Calendar에 전달합니다. 메소드 이름은 다음과 같습니다. pop() 예: var cr = Calendar("input2") cr.pop() 더 말할 것도 없습니다. 좋다고 생각하시면 지원해주세요. 헤헤. 궁금한 점이나 좋은 아이디어가 있으면 알려주세요. 감사합니다 자세한 사용법과 예시는 압축 패키지에 있습니다. 데모 주소 http://img.jb51.net/online/calendar/demo-1.html http://img.jb51.net/online /calendar/demo-2.html 패키지 다운로드 주소http://www.jb51.net/codes/12595.html
'; for(var i = 0; i < 7; i ++){ caleElem+= ''+Calendar.lang["weeksMenu"][this.Language][i]+''; } caleElem+= '
';
// Days view caleElem+= '
'; for(var tr = 0; tr < 6; tr ++){ caleElem+= '
'; for(var td = 0; td < 7; td ++){ caleElem+= '
'; } caleElem+= '
'; } caleElem+= '
';
caleElem+= '
'; //
caleElem+= '
';
// caleElem+= ''; // 캘린더 메시지>
// 생성 종료 return caleElem; }; /* 월 데이터 가져오기 */ Calendar.prototype._getMonthViewArray = function( 년, 월 ){ var MonthArray = []; // 한 주의 시작일부터 var startDayOfWeek = new Date( 년, 월, 1).getDay();
// 이번 달 총 일수 var daysOfMonth = new Date( 년, 월 1, 0).getDate();
// 42: 7*6 행렬 for( var i = 0; i < 42; i ) MonthArray[i] = " ";
monthArray를 반환합니다. }; /* 선택에서 옵션 인덱스 검색 */ Calendar.prototype._getOptionIndex = function( selectObject, value ){ for( var j = 0; j < selectObject.options.length; j ){ if( value == selectObject.options[j].value ) return j; } }; /* 연도 데이터를 '연도 선택'에 바인딩 */ Calendar.prototype._bindYearIntoSelect = function(){ var oYear = this.find( this.caleTop.sq_year_id ); var oYearLen = 0; for( var i = this.StartYear; i <= this.EndYear; i , oYearLen ) oYear.options[oYearLen] = new Option( i , i ); }; /* 월 데이터를 '월 선택'에 바인딩 */ Calendar.prototype._bindMonthIntoSelect = function(){ var oMonth = this.find( this.caleTop.sq_month_id ); var oMonthLen = 0; for( var i = 0; i < 12; i , oMonthLen ) oMonth.options[oMonthLen] = new Option( i 1 , i 1 ); }; /* 데이터 바인딩 */ Calendar.prototype._bindAllData = function( curYear, curMonth ){ var cr = this; // 'select:Year'에 기본 데이터 바인딩 this._bindYearIntoSelect();
// 기본 데이터를 'select:Month'에 바인딩 this._bindMonthIntoSelect();
// 'select:Year' 및 'select:Month' 값 변경 this.changeSelectValue( curYear, curMonth );
// '현재 일별 보기 및 이번 주별 보기'에 기본 데이터 바인딩 this.find( this.caleTop.week_view_id ).innerHTML = Calendar.lang['weeks'][this.Language] [이번.주]; this.find( this.caleTop.today_view_id ).innerHTML = this.Today;
// 날짜를 가져와 'CalendarMain'에 바인딩 // 현재 날짜 클래스 및 마우스 이벤트 추가 var daysOfMonthArray = this._getMonthViewArray( curYear, curMonth ); var spas = this.find( this.daysContainer_id, "span" ); var curYMD = this.Year "" ( this.Month 1 ) "" this.Today; var selectYear = this.find( this.caleTop.sq_year_id ).value; var selectMonth = this.find( this.caleTop.sq_month_id ).value; for( var i = 0; i spans[i].innerHTML = daysOfMonthArray[i]; var selectYMD = selectYear "" selectMonth "" 범위[i].innerHTML; if( curYMD == selectYMD ) spans[i].className = this.curDayClass; else spans[i].className = ""; } // 며칠간 팝업 메시지가 오지 않는다면 if( this.msgStore != "" ) this._initPopMsg( this.msgStore ); } /* 이벤트 바인딩 */ Calendar.prototype._bindAllEvent = function(){ var cr = this; // 'toPrevMonth, toNextMonth, backToday, 오늘 보기' 이벤트 this.find( this.caleTop.prev_month_id ).onclick = function(){ cr.goPrevOrNextMonth(this); }; this.find( this.caleTop.next_month_id ).onclick = function(){ cr.goPrevOrNextMonth(this); }; this.find( this.caleTop.back_today_id ).onclick = function(){ cr.backToday(); }; this.find( this.caleTop.today_view_id ).onclick = function(){ cr.backToday(); };
// '연도 및 월 선택' onchange 이벤트 this.find( this.caleTop.sq_year_id ).onchange = function(){ cr.updateSelect(); }; this.find( this.caleTop.sq_month_id ).onchange = function(){ cr.updateSelect(); };
for( var i = 0; i < selectArray.length; i ){ var selectObject = this.find( selectArray[i] ); // 반환 인덱스 가져오기 var index = this._getOptionIndex( selectObject, ymArray[i] ); // '연도', '월' 선택 및 값 연결 재설정 selectObject.options[index].selected = "selected";
this.resetLinkSelect(); }; /* 다음 또는 이전 달 검색 */ Calendar.prototype.goPrevOrNextMonth = function( obj ){ var curMonthSelect = this.find( this.caleTop.sq_month_id ); var curMonth =parseInt( curMonthSelect.value ); var curYear = this.find( this.caleTop.sq_year_id ).value; // '다음'이 이번 달을 가져오는 경우 1을 선택합니다. // '이전'이 이번 달을 가져오는 경우 - 1을 선택합니다. if( obj.id == this.caleTop.next_month_id ) curMonthSelect. 값 = 현재월 1; else curMonthSelect.value = curMonth - 1;