0

イベントをクリックすると、カレンダーに新しいイベントが配置されるようなことをしようとしています。この新しいイベントは 1 時間にわたり、クリックされたイベントと同じ開始日を持ちます。

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] で私が言いたかったのは、select メソッドを使用して新しいイベントをドラッグしてカレンダーに追加し、その新しいイベントが最初にクリックされたイベントの期間内にドラッグされている場合、すべてが正常に機能し、予想通り。

4

1 に答える 1