Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用moment js calendar.在单击特定日期时获取事件名称。。?_Javascript_Html_Date_Calendar_Momentjs - Fatal编程技术网

Javascript 如何使用moment js calendar.在单击特定日期时获取事件名称。。?

Javascript 如何使用moment js calendar.在单击特定日期时获取事件名称。。?,javascript,html,date,calendar,momentjs,Javascript,Html,Date,Calendar,Momentjs,我正在使用momentjs将日历集成到一个项目中 我想根据日期选择显示事件名称 让我举一个例子:如果我当时选择日期(2018-04-01),我想显示自定义事件名称 这是我的JavaScript代码 /*在你的代码中的某个地方有这个*/ 变量allowedates=[ '2018-04-01', '2018-04-02', '2018-04-03', '2018-04-11', '2018-04-12' ]; ! 函数(){ var today=时刻(); 功能日历(选择器、事件){ this.

我正在使用
momentjs
将日历集成到一个项目中

我想根据日期选择显示事件名称

让我举一个例子:如果我当时选择日期(
2018-04-01
),我想显示自定义事件名称

这是我的JavaScript代码

/*在你的代码中的某个地方有这个*/
变量allowedates=[
'2018-04-01',
'2018-04-02',
'2018-04-03',
'2018-04-11',
'2018-04-12'
];
! 函数(){
var today=时刻();
功能日历(选择器、事件){
this.el=document.querySelector(选择器);
这个事件=事件;
此.current=力矩().date(1);
这个.draw();
var current=document.querySelector('.today');
如果(当前){
var self=这个;
setTimeout(函数(){
开放日(当前);
}, 500);
}
}
Calendar.prototype.draw=函数(){
//创建标题
这个.drawHeader();
//取款月份
这个月();
这个.drawLegend();
}
Calendar.prototype.drawHeader=函数(){
var self=这个;
如果(!this.header){
//创建标题元素
this.header=createElement('div','header');
this.header.className='header';
this.title=createElement('h1');
var right=createElement('div','right');
右。addEventListener('click',function(){
self.nextMonth();
});
var left=createElement('div','left');
left.addEventListener('click',function()){
self.prevMonth();
});
//附加元素
this.header.appendChild(this.title);
this.header.appendChild(右);
this.header.appendChild(左);
this.el.appendChild(this.header);
}
this.title.innerHTML=this.current.format('MMMM-YYYY');
}
Calendar.prototype.drawMonth=函数(){
var self=这个;
this.events.forEach(函数(ev){
ev.date=self.current.clone().date(Math.random()*(29-1)+1);
});
如果(本月){
this.oldMonth=this.month;
this.oldMonth.className='month out'+(self.next?'next':'prev');
this.oldMonth.addEventListener('webkitAnimationEnd',function(){
self.oldMonth.parentNode.removeChild(self.oldMonth);
self.month=createElement('div','month');
self.backFill();
self.currentMonth();
self.fowardFill();
自身月数(self.month);
setTimeout(函数(){
self.month.className='month in'+(self.next?'next':'prev');
}, 16);
});
}否则{
this.month=createElement('div','month');
本月(本月);
这个。回填();
此.currentMonth();
这个。fowardFill();
this.month.className='month new';
}
}
Calendar.prototype.回填=函数(){
var clone=this.current.clone();
var dayOfWeek=clone.day();
如果(!dayOfWeek){
返回;
}
克隆。减去('days',dayOfWeek+1);
对于(var i=dayOfWeek;i>0;i--){
this.drawDay(clone.add('days',1));
}
}
Calendar.prototype.fowardFill=函数(){
var clone=this.current.clone().add('months',1)。subtract('days',1);
var dayOfWeek=clone.day();
如果(星期五===6){
返回;
}
对于(VarI=dayOfWeek;i<6;i++){
this.drawDay(clone.add('days',1));
}
}
Calendar.prototype.currentMonth=函数(){
var clone=this.current.clone();
而(clone.month()==此.current.month()){
这一天(克隆);
克隆。添加('天',1);
}
}
Calendar.prototype.getWeek=函数(天){
如果(!this.week | day.day()==0){
this.week=createElement('div','week');
本月(本周);
}
}
Calendar.prototype.drawDay=函数(天){
var self=这个;
本周(天);
//外天
var outer=createElement('div',this.getDayClass(day));
outer.addEventListener('click',function(){
//仅当元素未禁用时才打开
如果(!this.classList.contains('disabled')){
self.openDay(本);
}
});
//日名
var name=createElement('div','day name',day.format('ddd');
//日数
var number=createElement('div','day number',day.format('DD');
//事件
var events=createElement('div','day events');
本节列出了事件(日期、事件);
外部。附加子对象(名称);
外部。追加子项(编号);
外部事件(事件);
本.周.儿童(外);
}
Calendar.prototype.DrainEvents=函数(日期,元素){
if(day.month()==此.current.month()){
var todaysEvents=this.events.reduce(函数(memo,ev){
如果(ev.date.ISAME(日期,'day')){
推送(ev);
}
返回备忘录;
}, []);
todaysEvents.forEach(功能(ev){
var evSpan=createElement('span',ev.color);
元素。追加子元素(evSpan);
});
}
}
Calendar.prototype.getDayClass=函数(天){
班级=['天'];
if(day.month()!==此.current.month()){
类。推送(“其他”);
}else if(today.isname(day,'day')){
课程。推送(“今天”);
}
//在这里,添加一个类来禁用不允许的日期
if(allowedates.indexOf(day.format('YYYY-MM-DD'))<0){
类。推送(“禁用”);
}
返回类。加入(“”);
}
Calendar.prototype.openDay=函数(el){
变量详细信息,箭头;
var dayNumber=+el.querySelectorAll('.dayNumber')[0]。innerText | |+el.querySelectorAll('.dayNumber')[0]。textContent;
var day=this.current.clone().date(dayNumber);
var currentOpened=document.querySelector('.details');
//检查当前行上是否有打开的详细信息框
if(currentOpened&¤tOpened.parentNode==el.parentNode){
详细信息=当前已打开;
arrow=document.querySelector('.arrow');
}否则{
this.events.forEach(function(ev) {
  ev.date = self.current.clone().date(Math.random() * (29 - 1) + 1);
});
this.events.forEach(function(ev) {
  // Convert date Strings to Moment dates
  ev.date = moment(ev.date);
});
function Calendar(selector, events) {
  this.el = document.querySelector(selector);
  this.events = events;
  // Declare allowed dates
  this.allowedDates = this.events.map(function(ev) {
    return ev.date;
  });
var data = [
  {
    date: '2018-04-01',
    eventName: 'Interview - Jr. Web Developer',
    calendar: 'Work',
    color: 'orange'
  },
  {
    date: '2018-04-01',
    eventName: 'Demo New App to the Board',
    calendar: 'Work',
    color: 'orange'
  },
  /* ... */
];
// Here, add a class to disable disallowed dates
if (allowedDates.indexOf(day.format('YYYY-MM-DD')) < 0) {
  classes.push('disabled');
}