我使用fullcalendar作为我的日历功能。我正在使用dayClick
和select
。在fullcalendar中,即使是单日点击,也会调用select。所以,我更改了如下所示的dayClick事件来处理日期点击。这是我的代码
dayClick: function(date, jsEvent, view) {
isClicked = true;
},
select: function(startDate, endDate){
if(isClicked){
console.log('click');
return;
}
var start_date = moment(startDate).format('Y-MM-DD');
var end_date = moment(endDate).format('Y-MM-DD');
if(start_date != end_date){
end_date = moment(endDate).subtract(1, 'days').format('Y-MM-DD');
}
var set_default_duration = isClicked == true ? true : false ;
isClicked = false;
var user = $(t).attr('data-code');
// Some other stuff
},
实际上,我想处理双击以创建新事件。我尝试使用jquery中的dblclick
事件函数和日历,但始终只使用单击触发器。问题是,点击后立即激活选择,因此我无法处理双击。在这种情况下,有人可以帮助我处理双击。
以下是Fiddle
编辑:我试图双击空插槽来创建新事件。目前,单击即可执行此操作
答案 0 :(得分:2)
我找到了答案。问题在于选择。单击一天后选择它。所以,我使用unselect方法来清除选择,现在看起来很好。这是代码
dayClick: function(date, jsEvent, view) {
if(isClicked){
isDblClicked = true;
isClicked = false;
}
else{
isClicked = true;
}
setTimeout(function(){
isClicked = false;
}, 250);
},
select: function(startDate, endDate, jsEvent){
if(isClicked){
$(t).fullCalendar('unselect');
return;
}
// Other stuff
}
答案 1 :(得分:0)
那么你可以分配一个名为clickedTimes的新变量或类似的东西并将其设置为零。 每当您点击一次时,您将clickedTimes设置为1然后设置为2,并检查clickedTimes是否为2。 当它达到两个时,让它做你想做的事情并将其设置回零。