2014-01-18 6 views
1

В dayClick в fullCalendar определяется как:FullCalendar отображения событий dayClick

dayClick: function (start, allDay, jsEvent, view) { 
    alert('You clicked me!'); 
} 

Это срабатывает, когда пользователь нажимает на один день.

Я хотел получить доступ к данным о событиях, когда пользователь нажимает на определенный день. Сортировка слияния функции eventClick в dayClick, поэтому, когда я нажимаю на определенный день, я получаю название события, время начала, время окончания всех событий, происходящих в этот день.

+0

Что, если день не содержит событий? –

+0

@RahilWazir: В этом случае, я думаю, это даст «нуль». Я имею в виду, предположим, что если мы храним события в массиве, то этот массив будет равен нулю. – xan

+0

Тогда почему бы вам не использовать [eventClick] (http://arshaw.com/fullcalendar/docs/mouse/eventClick/) –

ответ

1

Я надеюсь, что это поможет вам

$('#calendar').fullCalendar({ 
     dayClick: function(date, allDay, jsEvent, view) { 
       var startDate = new Date(date.getFullYear(), date.getMonth(), date.getDay(), 0, 0, 0).getTime(); 
       var endDate = new Date(date.getFullYear(), date.getMonth(), date.getDay(), 23, 59, 59).getTime(); 
       var cache = new Date().getTime(); 
       $.getJSON("/json-events.php?start="+startDate+"&end="+endDate+"&_="+cache, 
        function(data) { 
         // do stuff with the JSOn data 
        } 
     } 
    }); 
+0

Я не знаю, как это поможет. У меня уже есть календарь с определенными событиями. Я просто хочу показать название событий, когда я нажимаю день (название всех событий, которые происходят в этот день). Кроме того, ваш код не работает. – xan

+0

Почему бы и нет? Я думаю, это тот же вопрос, заданный здесь: http://stackoverflow.com/questions/2516050/in-the-fullcalendar-dayclick-event-can-i-get-the-events-that-already-exist-in-c – user2183923

0

Вы можете попробовать это:

eventClick: function(xEvent, jsEvent, view) { 
    alert("Title: " + xEvent.title    //Get the event title 
      + "\n StartTime: " + xEvent.start //Get the event start date 
      + "\n EndTime: " + xEvent.end  //Get the event end date 
    ); 

    console.log(xEvent); //See your console for all event properties/objects 
} 

xEvent списки свойств/объекта.

+0

Это срабатывает, когда пользователь нажимает на «событие». Я хочу данные события, когда пользователь нажимает «день». – xan

+0

@ con_28 Если в день нет события, тогда, конечно, нет смысла, что будут данные о событиях. Вы можете получать данные о событиях только в том случае, если в день зарегистрировано событие. –

+0

В моем случае все дни имеют по крайней мере одно событие, кроме воскресенья. – xan

0
dayClick: function(date, allDay, jsEvent, view) { 
    var startDate = new Date(date.getFullYear(), date.getMonth(), date.getDay(), 0, 0, 0).getTime(); 
    var endDate = new Date(date.getFullYear(), date.getMonth(), date.getDay(), 23, 59, 59).getTime(); 
    var cache = new Date().getTime(); 
    $.getJSON("/json-events.php?start="+startDate+"&end="+endDate+"&_="+cache, 
     function(data) { 
      // do stuff with the JSOn data 
    }); 
    alert('ENTROU!'); 
}, 

теперь работает

открывает предупреждение, вы просто должны поместить информацию хотели.

0

Я думаю, что это то, что вы ищете.

dayClick: function(date, allDay, jsEvent, view) { 
    var date2 = new Date(date.getFullYear(), date.getMonth(), date.getDate()+1); 
    //This gives the next day of the clicked day('date' contains the clicked day) 

    var todaysEvents = $('#calendar').fullCalendar('clientEvents', function(event) { 
    // Below statement returns the EVENT OBJECT of the clicked day after comparing the two dates 
    return event.start >= date && event.start < date2; 
    }); 
    // You can now access the returned object & extract what you want 
    // console.log(todaysEvents); --> returns the complete object 
    // console.log(todaysEvents[0].title); --> returns that day's event title 
}, 

Надеюсь, это помогло.

+0

Сначала вам нужно преобразовать дату с момента js в javascript, используя функцию toDate. Итак, jsDate = date.toDate() и используйте jsDate вместо даты – danpop

+0

date.getDate() + 1 не будет работать ... это может быть 32. неверная дата. – rob345

Смежные вопросы