Как установить дату представления календаря из другого представления с помощью Jquery FullCalendar? - PullRequest
2 голосов
/ 17 мая 2011

У меня есть 2 элемента управления JQuery fullcalendar на моей странице.

Я хочу иметь возможность щелкнуть день в первом календаре, который находится в режиме месяца, а затем установить второй календарь, которыйпо умолчанию с использованием представления AgengaDay, до дня, который был нажат в 1-м календаре?

Я пробовал следующее:

 $('#firstCalendar').fullCalendar({

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

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

, но, похоже, не работает

Ответы [ 2 ]

3 голосов
/ 17 мая 2011

Вот, пожалуйста ... Это не так сложно на самом деле.Нажмите на день 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 связывается до полного календаря ...

$('.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 голос
/ 18 мая 2011

Я согласен с ppumkin для dayclick .

НО все еще можно изменить действия prev, next, today кнопки . Я буду использовать это решение для перехода от # 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');
});

И решение ppumkin для dayClick :

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

Вам следует использовать каждое ключевое слово , если вы используете .fullcalendar вместо # mycalendar2 (если вы используете более двух календарей).

Пример показан на: http://jsfiddle.net/Doomsday/6P2CR/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...