2017-04-20 391 views
1

我为我的日历功能使用fullcalendar。我正在使用dayClickselect。在fullcalendar中,即使是单日点击,选择也会被调用。所以,我改变了下面的dayClick事件来处理一天的点击。这里是我的代码Fullcalendar处理双击

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

编辑:我试图处理空槽双击创建新的事件。目前,单击是这样做的

回答

1

我找到了答案。问题在于选择。点击一天后会被选中。所以,我用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 
} 
0

那么你可以分配一个新的变量,这就是所谓的clickedTimes或类似的东西,并将其设置为零。 每当你得到一个点击,你设置clickedTimes为一个,然后两个,你检查clickedTimes是否在2. 当它达到两个让它做你想要的东西,并将其设置回零。

+0

我已经试过了。 '点击完成后立即选择被触发',所以第二次点击实际上不会发生。你能检查附带的小提琴并更新吗? –

+0

我不想'eventClick'。我不是在谈'eventClick'。我试图处理空插槽的双击来创建新事件。目前,单击是这样做的 –

+0

我真的不知道你的问题,那么我想对不起 –