2013-05-30 121 views
0

我正在嘗試做某些事情,當我點擊一個事件時,它會在日曆上放置一個新事件。此新事件跨越1小時,並且與點擊事件具有相同的開始日期:新事件的開始日期跟隨點擊事件的開始日期 - fullCalendar

eventClick: function(event) { 

    var startDate = event.start 
    var endDate = startDate.addHours(1) // using the Datejs library 

    var eventObject = { 
     id: SetGreatestId(), //function that tracks the currently greatest id, also returns that value +1. 
     title: "New Event", 
     editable: true, 
     start: startDate, 
     end: endDate, 
     color: "grey" 
    } 

    $(element).fullCalendar('renderEvent', eventObject, true) 
} 

上述功能正常工作。事件呈現在預期的位置。問題是當我嘗試修改新事件的開始日期時。

問題是這樣的:最初點擊事件的開始日期總是跟在新事件的開始日期之後。我一直在撞牆,試圖解決它無濟於事。

當我向上拖動事件時,最初單擊的事件的開始日期隨之移動(最初單擊的事件也可編輯設置爲false),但並不意味着這樣做。當拖動新事件以使其開始日期超過單擊事件的結束日期時,單擊的事件會嘗試呈現事件,使得開始日期在結束日期之後出現奇怪現象。

這都是因爲點擊事件的開始日期是由於某種原因鏈接到新事件的開始日期。

[1]當我在同一個最初點擊事件的範圍內拖動一個新事件時,一切正常,並按預期。

*編輯*

在判決[1],我的意思是:當我使用的選擇方法,通過拖動到一個新的事件添加到日曆,以及新的事件被內拖動最初點擊事件的時間跨度,一切工作正常,並按預期。

+0

[添加一個click事件fullcalendar]的可能重複(http://stackoverflow.com/questions/2524971/adding-a-click-event-to-fullcalendar) – user2205763

回答

1

上Date.js方面的專家,但在這裏:

var endDate = startDate.addHours(1) // using the Datejs library 

假設的startDate是一個普通的Date對象,這在我看來,結束日期的startDate將引用同一個日期對象,而且你只需要爲該對象添加1小時。您可能需要:

// Create a duplicate of startDate 
var endDate = new Date(+startDate); 

// Increment it by 1 hour 
endDate.setHours(endDate.getHours() + 1); 

以上不使用Date.js。

+0

它沒有工作:( 我也嘗試刪除原始點擊事件,渲染新事件,然後重新渲染原始點擊事件。新事件的開始日期仍然綁定到原始點擊事件。 – user2205763

+0

RobG基本上解決了它! 我剛剛做了startDate一個新的日期以及: var startDate = new Date(event.start) RobG如果我有信譽投票你,我會。 – user2205763

相關問題