2011-08-04 12 views
3

私はjquery Fullcalendarスクリプトhttp://arshaw.com/fullcalendar/を使用していますが、対応する1日のブロックにタイトルを表示するのではなく、イベントがあるときに1日のブロックをクリック可能にしたいと考えています。これを行う方法はありますか?どんな助けでも大歓迎です。FullCalendarイベントby

+0

同じ日に複数のイベントが発生した場合、どのように機能しますか?それとも、これはあなたの使用には起こりませんか?私は後者の場合、私に助けてくれます。 – cardiac7

答えて

1

ブロック上でレンダリングする要素のスタイルを変更するeventRender()コールバックを提供できます。

編集:カレンダーセルとイベントの間には関係がありません。 FC自体でも、イベントをドラッグするとセル上にオーバーレイが作成されます。私は、FCがオーバーレイをどのように作成するのかと同様に、セルをカバーするように要素をスタイルすることができると提案しました。それがあなたの望むものでなければ、FCのソースを調整する必要があります。

私はこれを試してみました:

ライン2175を、追加します。t.getBodyCells = function() { return bodyCells };

eventRender: function(event, element, view) { 
    var cell = view.dateCell(event.start); 
    var colCnt = view.getColCnt(); 
    var bodyCell = view.getBodyCells(); 
    var cellElement = bodyCell[cell.row*colCnt + cell.col]; 
    $(cellElement).css('background-color', 'red'); 
} 

あなたは今、セル上のクリックイベントハンドラを設定し、イベントのレンダリングを無効にすることができます。

+0

あなたのソリューションはクリック可能にならないでしょう。それを使って1日にイベントをレンダリングすることができます。作者は、イベントをレンダリングするのではなく、クリック可能にすることが可能かどうかを尋ねました(そして私も疑問に思っています)。 –

+0

これは有望そうです。ちょうど最後の質問ですが、どうすれば 'cell.row'と' cell.col'を得ることができますか? –

+0

'view.dateCell()'を使用してください。 'bodyCell'と一緒になって、特定のビュータイプに対してのみ存在します。また、イベントがなくてもすべてのセルをクリック可能にしても構わない場合は、 'dayClick:function(date、allDay、jsEvent、view){' – Tuan