【问题标题】:How do I set the date of a calendar view from another view using Jquery FullCalendar?如何使用 Jquery FullCalendar 从另一个视图设置日历视图的日期?
【发布时间】:2011-05-17 13:24:02
【问题描述】:

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

我希望能够单击处于“月份模式”的第一个日历上的一天,然后将默认使用 AgengaDay 视图的第二个日历设置为第一个被单击的日期日历?

我尝试了以下方法:

 $('#firstCalendar').fullCalendar({

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

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

但它似乎不起作用

【问题讨论】:

  • 不错 - 给我一点时间来尝试整理一下。这个不错!

标签: jquery fullcalendar


【解决方案1】:

给你——其实没那么难。点击 Cal1 日和 Cal2 更改!

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


代码


$('#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 );
}

点击“今天”和其他按钮..

我有一些这样的代码。但这不是解决方案。因为它显示日历更改之前的日期。所以基本上是旧日期 - 也许你可以使用超时? 500毫秒?什么的 - 因为 jquery 在 fullcalendar 之前绑定...

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

        });

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

http://arshaw.com/fullcalendar/docs/display/viewDisplay/

看看世界末日的答案-很好的解决方案:D


一天点击和可能的其他按钮的内部破解。

您可以打开 fullcalendar.js 并转到关于... 3220 的行或搜索Slot/Day click and binding

/* 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' ) );

};

【讨论】:

  • 太棒了!另一件事,如果我单击今天按钮,我如何让另一个日历“同步”到该日期?我不知道如何参与该事件。
  • 我编辑了 - 但我不确定如何绑定到今天的按钮属性 - 它认为你必须使用 viewDisplay 事件以某种方式调用 dayClicked
  • 请注意,这是可能的! :-) 看我的回答
【解决方案2】:

我同意 ppumkin 的 dayclick

但是仍然可以更改上一个、下一个、今天按钮的操作。我将使用此解决方案从 #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(如果您使用两个以上的日历),则应使用 each 关键字。

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

【讨论】:

  • Eemmm.. :D 这是做什么的?在压光机完成之前它仍然是预装订,不是吗?你能举个例子吗,因为我看不到这个效果很好:D
  • 不错!非常好 +1 :D SO 需要更多像你这样的人!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多