1

我将 fullcalendar 用于我的日历功能。我正在使用dayClickselect。在 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
 },

实际上,我想处理双击以创建新事件。我尝试使用dblclick带有日历的 jquery 事件功能,但始终单击仅触发。问题是,单击后立即触发选择,因此我无法处理双击。在这种情况下,有人可以帮我处理双击。

这是小提琴

编辑:我正在尝试处理双击空槽以创建新事件。目前,单击正在执行此操作

4

2 回答 2

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
}
于 2017-04-20T11:07:52.973 回答
1

好吧,您可以分配一个名为 clickedTimes 或类似名称的新变量并将其设置为零。每当您获得点击时,您将 clickedTimes 设置为 1,然后设置为 2,然后检查 clickedTimes 是否为 2。当它达到 2 时,让它执行您想要的操作并将其设置回零。

于 2017-04-20T08:40:08.217 回答