如何为这个用javascript制作的日历添加工具提示
我有这个日历(nicedaypicker),在后端php的帮助下,我在一个数组中获得了一些事件日期(var events=[];值的格式是:ex:2019/11/10),我想为该数组中的日期添加一个工具提示 this.$warpper.addEventListener('load', function (e) { i want to make something here to add a tooltip class on load of calendar }, false); 此.warpper.addEventListener('load',函数(e){ 我想在这里制作一些东西,在加载日历时添加工具提示类 },假); var事件=[]; (功能(全球、工厂){ typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(): typeof define==“函数”&&define.amd?定义(工厂): (global.calendar=factory()); }(这个,功能(){ "严格使用",; var calendar=函数($params){ 这是。$warpper=null; this.monthData=null; 这。$params=$params; this.init(this.params); }; calendar.prototype.getMonthData=函数(年、月){ 年、月; var-ret=[]; 如果(!年| |!月){ var today=新日期(); 年=今天。getFullYear(); 月份=今天。getMonth()+1; } var firstDay=新日期(年,月-1,1); var firstDayWeekDay=firstDay.getDay(); 如果(第一天工作日===0){ firstDayWeekDay=7; } 年份=第一天。getFullYear(); 月=第一天。getMonth()+1; var lastDayOfLastMonth=新日期(年,月-1,0); var lastDateOfLastMonth=lastDayOfLastMonth.getDate(); var preMonthDayCount=firstDayWeekDay-1; var lastDay=新日期(年、月、0); var lastDate=lastDay.getDate() var styleCls=''; 对于(var i=0;i lastDate){ 本月=月+1; showDate=showDate-lastDate; styleCls=‘漂亮的灰色’; }否则{ var today=新日期(); 如果(showDate==today.getDate()&&thisMonth===today.getMonth()+1){ styleCls=‘正常良好电流’; }否则{ styleCls=‘良好正常’; } } 如果(本月===13){ 本月=1; } 如果(本月===0){ 本月=12; } 后推({ 月份:这个月, 日期:日期:, showDate:showDate, styleCls:styleCls }); } 返回{ 年份:年份,, 月:月,, 日期:ret }; }; calendar.prototype.buildUi=函数(年、月){ this.monthData=this.getMonthData(年、月); this.dayWords=[[Lun]、[Mar]、[Mer]、[Gio]、[Ven]、[Sab]、[Dom]、[Mo]、[Tu]、[We]、[Th]、[Fr]、[Sa]、[Su]; this.enmonthwords=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月]; var html=''+ '' + '' + '' + '' + '' + '' + ''; 如果(!this.$params.mode){ this.$params.mode='it'; 对于(var i=0;i'+this.dayWords[0][i]+''; } }else if(此.$params.mode==='en'){ 对于(var i=0;i'+this.dayWords[1][i]+''; } }else if(this.$params.mode==='it'){ 对于(var i=0;i'+this.dayWords[0][i]+''; } } html+=''+ '' + ''; 对于(var i=0;i’; } html+=''+this.monthData.date[i].showDate+''; 如果(i%7==6){ html+=''; } } html+=''+ '' + '' + ''; 返回html; }; calendar.prototype.render=函数(方向,$params){ 年、月; 如果(本月数据){ year=this.monthData.year; 月份=this.monthData.month; }否则{ 年份=$params.year; 月份=$params.month; } 如果(方向=='prev'){ 月--; 如果(月===0){ 月=12; 年--; } } 如果(方向==“下一步”){ 月份++; } var html=this.buildUi(年、月); 这是。$warpper.innerHTML=html; }; calendar.prototype.init=函数($params){ 这。$warpper=$params.dom; 此。呈现(“”,$params); var_this=这个; 此.warpper.addEventListener('click',函数(e){ var$target=e.target; if($target.classList.contains('prev-date-btn')){ _本。呈现(“上一个”); } if($target.classList.contains('next-date-btn')){ _this.render('next'); } if($target.classList.contains('nice-normal')){ $params.onClickDate($target.getAttribute('data-date'); } },假); 此.warpper.addEventListener('mouseover',函数(e){ var$target=e.target; if($target.classList.contains('nice-normal')){ $target.classList.add('nice-active'); } },假); 此.warpper.addEventListener('mouseout',函数(e){ var$target=e.target; if($target.classList.contains('nice-normal')){ $target.classList.remove('nice-active'); } },假); 此.warpper.addEventListener('load',函数(e){ },假); }; 返回日历; }));如何为这个用javascript制作的日历添加工具提示,javascript,html,Javascript,Html,我有这个日历(nicedaypicker),在后端php的帮助下,我在一个数组中获得了一些事件日期(var events=[];值的格式是:ex:2019/11/10),我想为该数组中的日期添加一个工具提示 this.$warpper.addEventListener('load', function (e) { i want to make something here to add a tooltip class on load of calendar }, false)
我们看到的脚本太多了。请缩小问题范围,只显示需要我们注意的内容。如果要将数组数据显示为单个字符串,则要研究的函数是
join()<
var events = [];
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.calendar = factory());
}(this, function () {
'use strict';
var calendar = function ($params) {
this.$warpper = null;
this.monthData = null;
this.$params = $params;
this.init(this.$params);
};
calendar.prototype.getMonthData = function (year, month) {
var year, month;
var ret = [];
if (!year || !month) {
var today = new Date();
year = today.getFullYear();
month = today.getMonth() + 1;
}
var firstDay = new Date(year, month - 1, 1);
var firstDayWeekDay = firstDay.getDay();
if (firstDayWeekDay === 0) {
firstDayWeekDay = 7;
}
year = firstDay.getFullYear();
month = firstDay.getMonth() + 1;
var lastDayOfLastMonth = new Date(year, month - 1, 0);
var lastDateOfLastMonth = lastDayOfLastMonth.getDate();
var preMonthDayCount = firstDayWeekDay - 1;
var lastDay = new Date(year, month, 0);
var lastDate = lastDay.getDate()
var styleCls = '';
for (var i = 0; i lastDate) {
thisMonth = month + 1;
showDate = showDate - lastDate;
styleCls = 'nice-gray';
} else {
var today = new Date();
if (showDate === today.getDate() && thisMonth === today.getMonth() + 1) {
styleCls = 'nice-normal nice-current';
} else {
styleCls = 'nice-normal';
}
}
if (thisMonth === 13) {
thisMonth = 1;
}
if (thisMonth === 0) {
thisMonth = 12;
}
ret.push({
month: thisMonth,
date: date,
showDate: showDate,
styleCls: styleCls
});
}
return {
year: year,
month: month,
date: ret
};
};
calendar.prototype.buildUi = function (year, month) {
this.monthData = this.getMonthData(year, month);
this.dayWords = [['Lun', 'Mar', 'Mer', 'Gio', 'Ven', 'Sab', 'Dom'], ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']];
this.enMonthsWords = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var html = '' +
'' +
'<';
if (!this.$params.mode) {
this.$params.mode = 'it';
html += '' + this.monthData.year + '年 - ' + this.monthData.month + '月';
} else if (this.$params.mode === 'en') {
html += '' + this.enMonthsWords[this.monthData.month - 1] + ',' + this.monthData.year + '';
} else if (this.$params.mode === 'it') {
html += '' + this.monthData.year + '年 - ' + this.monthData.month + '月';
}
html += '>' +
'' +
'' +
'' +
'' +
'';
if (!this.$params.mode) {
this.$params.mode = 'it';
for (var i = 0; i ' + this.dayWords[0][i] + '';
}
} else if (this.$params.mode === 'en') {
for (var i = 0; i ' + this.dayWords[1][i] + '';
}
} else if (this.$params.mode === 'it') {
for (var i = 0; i ' + this.dayWords[0][i] + '';
}
}
html += '' +
'' +
'';
for (var i = 0; i ';
}
html += '' + this.monthData.date[i].showDate + '';
if (i % 7 === 6) {
html += '';
}
}
html += '' +
'' +
'' +
'';
return html;
};
calendar.prototype.render = function (direction, $params) {
var year, month;
if (this.monthData) {
year = this.monthData.year;
month = this.monthData.month;
} else {
year = $params.year;
month = $params.month;
}
if (direction === 'prev') {
month--;
if (month === 0) {
month = 12;
year--;
}
}
if (direction === 'next') {
month++;
}
var html = this.buildUi(year, month);
this.$warpper.innerHTML = html;
};
calendar.prototype.init = function ($params) {
this.$warpper = $params.dom;
this.render('', $params);
var _this = this;
this.$warpper.addEventListener('click', function (e) {
var $target = e.target;
if ($target.classList.contains('prev-date-btn')) {
_this.render('prev');
}
if ($target.classList.contains('next-date-btn')) {
_this.render('next');
}
if ($target.classList.contains('nice-normal')) {
$params.onClickDate($target.getAttribute('data-date'));
}
}, false);
this.$warpper.addEventListener('mouseover', function (e) {
var $target = e.target;
if ($target.classList.contains('nice-normal')) {
$target.classList.add('nice-active');
}
}, false);
this.$warpper.addEventListener('mouseout', function (e) {
var $target = e.target;
if ($target.classList.contains('nice-normal')) {
$target.classList.remove('nice-active');
}
}, false);
this.$warpper.addEventListener('load', function (e) {
}, false);
};
return calendar;
}));