2013-04-13 6 views
5

を変更した私は、クリックで開き、カレンダーのイベントにブートストラップpopoversを追加しましたまたは週/日のレイアウトに)。ポップオーバーはカレンダー内の.fc-event divs/spanにバインドされているため、.popover('destroy')を実行するには、これらのDOM要素にアクセスする必要があります。コールバックが

fullCalendarビューが変更されると、古いDOM-Elementsは新しいビューのものに置き換えられるので、ビューが実際に変更される前にアクセスする必要があります。残念ながら、イベントの読み込み(ビューが変更された後に発生するloading)とviewDisplay(同じですが、新しいビューが表示されます)のコールバックのみがあります。

私が正しくviewDisplayを理解を確認するために、私はいつも私に「0」を与えるカレンダーに小さなテストを追加しました(データ・セレクタはjquery data selectorから来ている)

viewDisplay: (view) -> 
    alert(jQuery('.fc-event:data(popover)').size()) 

はにフックする方法はありますビューが変更されるたびに - ビューが実際に変更される前にカレンダープロセス?

編集今(clickへのバインドがビューの変更後に実行されるような)マウスは任意のカレンダーボタンを上に移動されますが、このソリューションはちょうどになると私は単にpopoversを破壊してるために

回避策

jQuery('.fc-button').on 'mouseover',() -> 
    jQuery('.fc-event:data(popover)').popover('destroy') 

答えて

3

私はあなたがドキュメントからhttp://fullcalendar.io/docs/display/viewRender/

を探していると思う

viewRender

新しい日付範囲がレンダリングされるときにトリガ、またはビュータイプを スイッチ。関数(ビュー、要素)ビューは、 新しいビューのビューオブジェクトです。要素は新しい ビューのコンテナのjQuery要素です。

このコールバックは、ユーザーがビューを変更するとトリガーされるか、または のいずれかの日付ナビゲーションメソッドが呼び出されるとトリガーされます。

このコールバックは、ビューが完全にレンダリングされた後に発生しますが、イベントがレンダリングされる前に発生します(eventAfterAllRenderも参照してください)。

+0

私は 'viewRender'を見て、それに問題がありましたが、かなり前です。私はそれがそれを解決するかどうか、あなたの答えを受け入れるかどうかを見ます。 – stex