2009-12-17 66 views
0

我剛剛發現了fullCalendar jQuery插件,它幾乎可以完成我爲構建的約會計劃服務所需的一切。但是,我遇到了一個小問題。jQuery ui.draggable - 更改當前拖動的對象(在fullCalendar中)

fullCalendar agendaDay視圖內有「事件」元素可拖動,但它們被鎖定到可用時隙的tds。我想保持這種捕捉時間,但也可以將事件完全拖到日曆之外(這是來自舊版本系統的行爲要求)。

我的想法是在日曆表的mouseout事件上製作對象的克隆;這是有效的,但是用戶必須單擊並從原始對象中單獨拖動克隆,而不是克隆被拖動。

一旦用戶嘗試將「事件」元素拖到表格外,我需要將「正在被拖動」狀態轉移到克隆。這是否有可能?我可以使用更簡單的解決方案嗎?

這是我的代碼,它克隆。 eventDragStart是當用戶開始拖動一個關於(http://arshaw.com/fullcalendar/docs/triggered-actions.php)的事件時調用的「觸發動作」,其中$(this)設置爲事件元素,event是calEvent(實際數據項 - 此處不相關),js是javascript事件(我得到座標),ui是ui對象引用。 「.fc」是日曆,「#display_box」是包含這部分界面的父元素。 (順便說一下,這個定位目前還不能正常工作,但現在這是次要的優先事項)。

... 
eventDragStart: function (event, js, ui) $\{ 
var eventElement = $(this); 
$(".fc").mouseout(function() { 
    eventElement.clone().css({'z-index':99999, top:js.clientY, right:js.clientX).appendTo("#display_box").draggable({helper: 'original'}); 
    $(".fc").unbind("mouseout"); 
}); 
}, 
.... 

我希望這對任何沒有使用過fullCalendar的人都很清楚。我非常感謝任何幫助,對不起,這很久。

回答

0

如果有人對我使用的解決方案感興趣,我最終編寫了自己的迷你可拖動功能 - 如果用戶移動到日曆表的外部,並且手動更新了克隆的css頂部,我在拖動事件期間克隆了對象/左值直到拖動事件結束。這意味着原始對象仍然在表格內上下拖動,這並不是很理想,但這是我能想到的最好的解決方案,它提供了客戶需要的功能。

0

嗯,我想你想要使用eventElement.clone(true)傳遞布爾值true作爲參數將克隆所有附加的事件/處理程序的元素,其中不傳遞只是要克隆包裝在jQ中的圓頂元素。

+0

感謝您的指針;我嘗試過,但克隆的對象仍然不會變成「當前」可拖動對象;該克隆只是作爲另一個單獨的可拖動對象出現在文檔中,而不是我想要的連續拖動。 –

相關問題