如何使用Jquery FullCalendar从另一个视图设置日历视图的日期?

时间:2011-05-17 13:24:03

标签: jquery fullcalendar

我的页面上有2个Jquery fullcalendar控件。

我希望能够点击第一个日历中处于“月份模式”的日期,然后使用AgengaDay视图将第二个日历设置为默认情况下的日期。日历?

我尝试了以下内容:

 $('#firstCalendar').fullCalendar({

            dayClick: function (date, allDay, jsEvent, view) {

                $('#secondcalendary').fullCalendar('select', date, date, allDay);
            }
 });

但它似乎无法正常工作

2 个答案:

答案 0 :(得分:3)

你走了 - 实际上并不困难。点击Cal1 day和Cal2 Changes!

http://jsfiddle.net/ppumkin/A56LN/


<强> CODE


$('#mycalendar1').fullCalendar(
{
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    dayClick: function( date, allDay, jsEvent, view ) {
        dayClicked(date);
    },
    events: [                         
        {
            title  : 'event2',
            start  : '2011-03-10',
            end    : '2011-07-25'
        }
    ]
}); 


$('#mycalendar2').fullCalendar(
            {
             header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,agendaWeek,agendaDay'
                    },

                defaultView: 'agendaDay',

                events: [                         
                        {
                            title  : 'event2',
                            start  : '2011-03-10',
                            end    : '2011-07-25'
                        }
                    ]
           }); 


function dayClicked(date){
    $('#mycalendar2').fullCalendar( 'gotoDate', date );
}

点击“TODAY”和其他按钮..

<击> 我得到了一些像这样的代码。但这不是解决方案。因为它显示日历更改之前的日期。所以基本上是旧日期 - 也许你可以使用超时? 500ms的?或某事 - 因为jquery在fullcalendar之前绑定...

$('.fc-button-today').click(function() { 
     alert($('#mycalendar2').fullCalendar( 'getDate' ));
   //dayClicked($('#mycalendar2').fullCalendar( 'getDate' ))

        });

您可能必须使用viewDisplay事件。但它在那里变得有点复杂。这是一个如何使用它的文档。

<击> http://arshaw.com/fullcalendar/docs/display/viewDisplay/

看看DoomsDay的答案 - 很好的解决方案:D


日内点击的内部黑客以及可能的其他按钮。

您可以打开fullcalendar.js并转到关于... 3220的行或搜索插槽/日点击和绑定

/* Slot/Day clicking and binding
-----------------------------------------------------------------------*/


function dayBind(cells) {
    cells.click(slotClick)
        .mousedown(daySelectionMousedown);

   //OVER HERE INSERT YOUR CUSTOM CALL!
     setMyOtherCalendar();
}

并且在你的页面某处,您将拥有 setMyOtherCalendar 的公共功能,并且它会包含这个简单的代码.init mate?

function setMyOtherCalendar(){

  $('#mycalendar2').fullCalendar( 'gotoDate',      $('#mycalendar1').fullCalendar( 'getDate' ) );

};

答案 1 :(得分:1)

我同意 dayclick 的ppumkin。

但是仍然可以改变 prev,next,today buttons 的动作。我将使用此解决方案从#mycalendar1导航到#mycalendar2:

$("#mycalendar1 .fc-button-prev").click(function() {
  $("#mycalendar2").fullCalendar('prev');
});
$("#mycalendar1 .fc-button-next").click(function() {
  $("#mycalendar2").fullCalendar('next');
});
$("#mycalendar1 .fc-button-today").click(function() {
  $("#mycalendar2").fullCalendar('today');
});

保持 dayClick 的ppumkin解决方案:

dayClick: function( date, allDay, jsEvent, view ) {
   $('#mycalendar2').fullCalendar( 'gotoDate', date );
},

如果您使用的是.fullcalendar而不是#mycalendar2(如果您使用的是两个以上的日历),则应使用每个关键字。

示例显示在:http://jsfiddle.net/Doomsday/6P2CR/