2010-12-08 57 views
2

我被困在這裏,需要一些嚴重的幫助。我必須使用fullcalendar做一些工作,我按照標準程序完成了所有工作。日曆顯示正確插槽上的所有事件都可以正常工作。有些事件需要被渲染,但仍然隱藏起來,並等待顯示一個事件,所以我在這裏做的只是在隱藏時將css display屬性設置爲none,當可見時將其設置爲block。到目前爲止,一切正常,當從A插槽拖到B插槽時出現問題,由於某些奇怪的原因,當拖動事件開始時,事件框應該靠近光標,但事實框不是,事件框是從光標右側200px和100px左右。在Fullcalendar上拖放隱藏事件

我已經做了一些調試,發現即使事件框的頂部和左側屬性設置正確(可以說頂部:300px,左側:150px),當拖動事件開始時,左側的值爲0px,頂部像580px一樣。我不明白爲什麼會發生這種情況,我做錯了什麼,或者如果有什麼我應該做的

回答

1

問題是,FullCalendar使用jQuery UI的位置實用程序來找出事件渲染的位置,最瀏覽器在指定隱藏元素的頂部/左側時做得很差。所以,當你讓事件可見時,jQuery並沒有真正的想法,他們已經到了最後,並且最終做出了你看到的瘋狂的東西。

最簡單的解決方案:不要使用CSS來顯示/隱藏你的事件。一旦顯示,使用FullCalendar API創建事件。 renderEvent是你想要的東西:

$('#mycalendar').fullCalendar('renderEvent', event [, stick ]) 

另一種可能性:在你的CSS還設置display: none;另外指定top: 0px; left: 0px。有時候這會欺騙位置進入正常工作狀態。

+0

有沒有其他的方法來欺騙職位?我試圖設置頂部和左兩個0px,但錯誤仍在複製。關於renderEvent,這對我來說不是一種選擇,因爲日曆在我的情況下工作的方式。謝謝 – Mike 2010-12-13 15:54:43