私が構築している予約スケジューリングサービスに必要なほとんどすべてを実行するfullCalendarjQueryプラグインを発見しました。しかし、私は小さな問題にぶつかりました。
fullCalendar agendaDayビュー内にはドラッグ可能な「イベント」要素がありますが、それらは使用可能なタイムスロットのtdsにロックされています。このスナップをタイムスロットに保持したいだけでなく、イベントをカレンダーの完全に外側にドラッグできるようにします(これは古いバージョンのシステムの動作要件です)。
私のアイデアは、カレンダーテーブルのmouseoutイベントでオブジェクトのクローンを作成することでした。これは機能しますが、ユーザーは、クローンがドラッグされるのを引き継ぐのではなく、クローンをクリックして元のオブジェクトから個別にドラッグする必要があります。
ユーザーが「event」要素をテーブルの外にドラッグしようとしたら、「ドラッグされています」ステータスをクローンに転送する必要があります。これはどういうわけか可能ですか?おそらく私が使用できるより簡単な解決策はありますか?
これがクローン作成を行う私のコードです。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を使用したことがない人には、これが明らかであることを願っています。助けていただければ幸いです。長い間申し訳ありません。