2017-04-20 395 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

我真的不知道你的問題,那麼我想對不起 –