2011-06-20 4 views
21

FullCalendarにリスナーをアタッチする方法はありますか?現在閲覧している日付が変更されたときはいつでも呼び出されます。つまり、月表示になっている場合は、次の月に移動すると、月表示、週表示での週の変更、日表示での日表示などがあります。FullCalendarの「日付変更」のリスナーですか?

これに近い露出リスナーはdayClickコールバックですが、実際の日のセルでユーザーがクリックしたときにのみ起動されるため、いいえではありません。たとえば、Next/prev/todayコントロールが押されたときヘッダーバーに表示されます。

FullCalendarの現在の月をExtJSのdatepickerコンポーネントと同期できるようにするため、FullCalendarで表示された月が変更された場合、Datepickerは同じ月を表示するように更新されます。私はこの質問を知って

はかなり古代で、

答えて

21

ビル(左上にあるその「ミニカレンダー」という日付ピッカーでGoogleカレンダーのUIを考える)が、私は解決策を必要とし、私はそれを投稿したい考え出しここには他人のために。私は自分のカレンダーにviewDisplayイベントを添付してこの問題を自分で解決しました(このイベントはremoved in v2 of FullCalendar,viewRenderでした)。あなたは要素パラメータへのアクセスを持ってたら

$("#calendar").fullCalendar({ 
    viewDisplay: function (element) { 

    } 
}); 

は、あなたがelement.startelement.visStartを使用して、日付を取得することができます。月表示の場合、startは表示している月の最初の日を表示し、visStartは月の最初の表示日を返します

+9

ドキュメントによると、viewDisplayは、現在、viewRenderのために推奨されていません。 [リンク](http://arshaw.com/fullcalendar/docs/display/viewRender/) 「$( "#カレンダー")fullCalendar({ viewRender:機能(ビュー、エレメント){ }} ); ' – sarme

+0

nice、know to know –

8

これは私がやった方法です:

$("#calendar").fullCalendar({ 

viewRender: function(view, element){ 
     var currentdate = view.intervalStart; 
     $('#datepicker').datepicker().datepicker('setDate', new Date(currentdate)); 
    } 

    }); 

月表示では、intervalStartは、最初の表示日ではなく、FullCalendarに表示される月の最初の日を返します。これは、通常、前月の終わり近くの日です。

+1

私は、カレンダーのレンダリングの最後に呼び出されるeventAfterAllRenderコールバックを使用しました。そして、渡されたビューオブジェクトから... 'eventAfterAllRender:function(view){ doMyStuff(view.intervalStart.format( 'YYYY-MM-DD'))); } ' – Yorick

関連する問題