Как отменить старый выбор в fullCalendar? - PullRequest
2 голосов
/ 13 января 2011

Я использую jQuery fullCalendar (http://arshaw.com/fullcalendar/docs/selection/unselectAuto/)

Я использую выбираемую версию этого календаря (http://arshaw.com/js/fullcalendar/demos/selectable.html)

Работает нормально, однако я хочу отменить / удалить свой старый выбор, если продолжу выбирать новые даты.

Допустим, я выбрал 1 января и дал название. Когда я пытаюсь выбрать 2 января, я хочу видеть только выбор 2 января. Я думал, что unselectAuto для этого, но я не мог заставить его работать: (

Есть идеи?

Я использовал unselectAuto прямо под выбираемый: правда, снимите флажокAuto: true,

Ответы [ 5 ]

4 голосов
/ 30 января 2012

ты можешь попробовать вот так, у меня это работает :)

 var liveDate = new Date(); // current Date
 var calendar = $('#calendar').fullCalendar({
         select: function (startDate, endDate) {
                    if (liveDate > startDate) {
                      alert('Selected date has been passed');
                      return false;
                  } else {
                           //do your wish
                  }
         calendar.fullCalendar('unselect');
    }
});
4 голосов
/ 07 октября 2012

Сначала все еще необходимо использовать функцию $('#yourCalendar').fullCalendar('unselect');.

Второе, что мне нужно было сделать, - указать, как будет вести себя обратный вызов отмены выбора (при настройке параметров fullcalendar). Мне пришлось открепить кнопку отправки с моей формы

unselect: function(){
    $('#submitButton').unbind();
},

Отлично сработало!

Мне удалось прийти к такому выводу после прочтения этого поста "создано несколько событий"

2 голосов
/ 16 января 2018

Была такая же проблема, но мой пользователь напрямую взаимодействовал с календарем и генерировались несколько событий. то есть. не через форму с кнопкой и, следовательно, ничто не «отвязать», как многие из предыдущих решений.

Чтобы разрешить только один выбор и очистить предыдущие представления, я изменил функцию выбора следующим образом:

select: function(start, end) {
   var title = "Desired Booking";
   var eventData;
   eventData = {
       title: title,
       start: start,
       end: end
   };
 $('#calendar').fullCalendar('renderEvent', eventData, true);                                                },

select: function(start, end) {
   $('#calendar').fullCalendar('removeEvents');
   $('#calendar').fullCalendar('rerenderEvents')
   var title = "Desired Booking";
   var eventData;
   eventData = {
       title: title,
       start: start,
       end: end
   };
 $('#calendar').fullCalendar('renderEvent', eventData, true);                                                },

Это помогло мне.

1 голос
/ 08 февраля 2011

У меня тоже были проблемы с отменой выбора Авто.Иногда он отменял выбор, когда я этого не хотел, и иногда он НЕ отменял выбор, когда я этого хотел.Мое решение состояло в том, чтобы вручную вызвать метод отмены выбора.

Вот как отменить выбор всех выбранных в настоящее время:

$('#yourCalendar').fullCalendar('unselect');

Вы можете поместить эту строку кода внутри пользовательских событий jQuery, которые вы связываете внеплагин.Вы также можете включить его в обратные вызовы fullCalendar и т.д ...

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

Скотт

0 голосов
/ 11 декабря 2012

Используйте этот код

 $('#trainings_modal').on('hidden', function () {
        $('#trainings_modal *').unbind(); // Unbind all events
 });

Отмена привязки в скрытой форме любым способом (например, нажатием клавиши esc или клавишей out)

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