程序比較簡單,代碼中都有說明,這里說說怎么使用。
首先是實例化一個Calendar,并設(shè)置參數(shù)。
參數(shù)說明:
Year:要顯示的年份
Month:要顯示的月份
SelectDay:選擇日期
onSelectDay:在選擇日期觸發(fā)
onToday:在當(dāng)天日期觸發(fā)
onFinish:日歷畫完后觸發(fā)
一般SelectDay設(shè)置成選擇了的日期,并在onSelectDay中設(shè)置一個函數(shù)用來設(shè)置這個日期的樣式,
例如實例里SelectDay設(shè)置成今個月10號并在那天樣式設(shè)為onSelect:
代碼如下:
SelectDay: new Date().setDate(10),
onSelectDay: function(o){ o.className = "onSelect"; },
而onToday就用來設(shè)置今日日期的樣式,
例如實例里面把今天的日期的樣式設(shè)為onToday:
onToday: function(o){ o.className = "onToday"; },
在onFinish中可以放需要設(shè)置日歷的程序。
可以通過this.Year和this.Month獲取當(dāng)前日歷顯示的年份和月份。
對有數(shù)據(jù)的日期的也在這里設(shè)置,例如實例中是有一個當(dāng)前月份的有數(shù)據(jù)的日期列表,然后根據(jù)這個列表對相應(yīng)的日期進(jìn)行設(shè)置:
代碼如下:
var flag = [10,15,20];
for(var i = 0, len = flag.length; i < len; i++){
this.Days[flag[i]].innerHTML = "" + flag[i] + "";
}
實例中是固定了這個日期列表,實際應(yīng)用中可以根據(jù)年份月份獲取對應(yīng)的日期列表,
個人推薦用年份月份通過ajax獲取。
程序中還有兩個有用的方法PreMonth(顯示上一個月)和NextMonth(顯示下一個月)。
測試代碼: