2014-12-01 2 views
0

Я создал приложение в полнокалендарном режиме, приложение работает нормально, но проблема в том, что в режиме недели у меня есть два события на сегодня (9 ноября - 15 2014 г.) - Встреча 1 и Meeting 2, оба находятся в пределах границ, на которых вы можете увидеть светло-зеленое событие. Проблема, с которой я сталкиваюсь, - это распределение времени, которое им было распределено путем перетаскивания, как показано ниже. Поскольку мое требование заключается в том, что какие-либо события не должны делиться своим временем с любыми другими событиямисобытий, разделяющих друг друга в полном календаре

enter image description here

Может кто-нибудь пожалуйста, скажите мне решение этой

Working JSfiddle

Мой код выглядит приведенный ниже

$(document).ready(function() { 
     $('#calendar').fullCalendar({ 
      slotEventOverlap : false, 
      header: { 
       left: 'prev,next today', 
       center: 'title', 
       right: 'month,agendaWeek,agendaDay' 
      }, 
      defaultDate: '2014-11-12', 
      businessHours: true, // display business hours 
      editable: true, 
      events: [ 
       { 
        title: 'Business Lunch', 
        start: '2014-11-03T13:00:00', 
        constraint: 'businessHours' 
       }, 
       { 
        title: 'Meeting 1', 
        start: '2014-11-13T11:00:00', 
        end: '2014-11-13T12:00:00', 

        constraint: 'availableForMeeting', // defined below 
        color: '#257e4a' 
       }, 
       { 
        title: 'Meeting 2', 
        start: '2014-11-13T12:00:00', 
        end: '2014-11-13T14:00:00', 
        constraint: 'availableForMeeting', // defined below 
        color: '#257e4a' 
       }, 
       { 
        title: 'Conference', 
        start: '2014-11-18', 
        end: '2014-11-20' 
       }, 
       { 
        title: 'Party', 
        start: '2014-11-29T20:00:00' 
       }, 

       // areas where "Meeting" must be dropped 
       { 
        id: 'availableForMeeting', 
        start: '2014-11-11T10:00:00', 
        end: '2014-11-11T16:00:00', 
        rendering: 'background' 
       }, 
       { 
        id: 'availableForMeeting', 
        start: '2014-11-13T10:00:00', 
        end: '2014-11-13T16:00:00', 
        rendering: 'background' 
       }, 

       // red areas where no events can be dropped 
       { 
        start: '2014-11-24', 
        end: '2014-11-28', 
        overlap: false, 
        rendering: 'background', 
        color: '#ff9f89' 
       }, 
       { 
        start: '2014-11-06', 
        end: '2014-11-08', 
        overlap: false, 
        rendering: 'background', 
        color: '#ff9f89' 
       } 
      ], 
      eventDrop: function (event, delta, revertFunc) { 
       return false; 
      } 
     }); 
}); 

ответ

0

Если вам нужен somethin g like:

disableDragging: true, 

-Все это легко для вас. Но это метод fullCalendar, который отключает способность перетаскивания события цельного каледара.

Так (а не пытаться использовать несуществующие функции) попробовать это в вашем eventRender(event, element) обратного вызова:

if (event.id == 'someid') 
    element.draggable = false; 
} 

Я нашел другое решение здесь:

Почему вы не проверить его в Select обратного вызова ?

select: function(start, end, allDay, jsEvent, view) { 
    if(/*start is the disabled time*/) 
     return false; 
    else{ 
     // Proceed with the normal flow of your application 
     // You might show a popup to get info from user to create 
     // a new event here 
    } 
} 

Ссылка: Disable timeslot ranges in jQuery fullcalendar plugin

Спасибо.

+0

На самом деле я не пытаюсь отключить функцию черчения или отбрасывания .... вместо этого я хочу перетащить события в то место, где не выделяются другие события –

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