2012-02-03 2 views
0

私はGREAT jquery plugin fullcalendarを使用しています。選択した日付の範囲から個々の新しいイベントを挿入するときに問題が発生する

これは私の問題です。

ユーザがカレンダー上で2つまたは3つの連続する日付をクリックしてドラッグすることによって日付の範囲を選択すると、例えば、任意の月の3日から5日まで。

select:function(start、end、allDay)イベントは、その月の3日の開始日とその月の5日の終了日で起動します。

私がしたいことは、日付ごとに個別のイベントを挿入することです。だから私は1つの長いイベントを3日間持続させたいとは思っていません...その日のそれぞれについて個別のイベントを挿入したいと思います。ここで

は、私が使用するコードです:

select: function (start, end, allDay) { 
    var title = 'test';// prompt('Event Title:'); 
    while (start.valueOf() < end.valueOf() + 86400000) { 

    calendar.fullCalendar('renderEvent', 
     { 
     title: title, 
     start: start, 
     allDay: allDay 
     }, 
     true // make the event "stick" 
     ); 

     start.setTime(start.valueOf() + 86400000); 
    } 

    calendar.fullCalendar('unselect'); 
}, 

しかし、それは新しいイベントを挿入するたびに、それは、1日で最後に挿入イベントを上に移動します。最終的に私が作成している3つのイベントはすべて5日に作成されます。第5回は3イベントです。私のコードに休憩を入れると、実際には適切な日付に作成されたイベントが表示されますが、次の日付(3日から4日まで)に行くと、最後に挿入された日付第4にも。

一度に1つの日付しか選択しないと、同じコードが発生します。

私は1月3日を選択します。イベントは1月3日に作成されます。しかし、1月15日をクリックすると、そのイベントは15日に作成され、最後に作成された3日のイベントは1月4日にバンプされます。

私は1月の6日をクリックして、SELCT場合はその後、イベントが6日に正しく作成されます

が、最後のイベント、15日は16日にぶつけます... 私はあなたの問題を考える

答えて

0

を助けてくださいは、単純なjavascriptの問題です:つまり、日付はオブジェクトであり、Javascriptで参照によって渡されるため、すべてのイベントは変数 'start'が指す日付を指しています。したがって、変数 'start'を使用してその日付を変更すると、それらすべてのために。修正は、このようにそれを割り当てる前に、日付のクローンを作成するために、次のようになります。

... 
title: title, 
start: new Date(start.getTime()), 
allDay: allDay, 
... 

私はこれを自分でテストしていませんが、私はそれが動作しますかなり確信しています。

関連する問題