Конфликт функции FullCalendar dayClick с функцией выбора - PullRequest
3 голосов
/ 03 августа 2010

Я заметил, когда я пытаюсь реализовать dayClick: и в функциях выбора где-то возникает коллизия.

Вот некоторый суженный код.

// WHEN YOU SELECT MULTIPLE DAYS
            select: function(start, end, allDay) {
                var title = prompt('New Select Date:');
                if(title) {
                    calendar.fullCalendar('renderEvent',
                        {
                            title: title,
                            start: start,
                            end: end,
                            allDay: allDay
                        }, true);
                calendar.fullCalendar('unselect');
                alert("end of select");
                }
            },

            // ADDING A NEW EVENT
            dayClick: function (date) {
                alert("Day ("+ date +") was clicked");
            },

Таким образом, проблема возникает, когда я "щелкаю" в день, он предупреждает меня, что это хорошо, но затем он вызывает приглашение для функции SELECT.

Таким образом, он запускает ALERT, а затем окно PROMPT.Я не уверен, почему это происходит, я не смог сузить причины, возможно, у кого-то еще была похожая проблема?

Пожалуйста, дайте мне знать, если вы столкнулись с исправлением или таким жевопрос.Приветствия.

Ответы [ 2 ]

5 голосов
/ 03 августа 2010

То, что я обнаружил, что вам не нужно иметь SELECT + DAYCLICK для создания нового события.Выберите работает, даже если это 1 день или более.Поэтому, когда я нажал на один день, он вызвал оба.Бах, незначительная проблема, но, по крайней мере, я понял это.

Я не видел этого в документации, если это было там.Надеюсь, это может помочь кому-то еще.

Приветствия.

2 голосов
/ 11 апреля 2017

Как сказал Джастин, вам нужно только выбрать, а не dayClick, потому что оба они сработали. Однако, мне кажется, что для смартфонов, например, требуется dayClick, потому что выбор не срабатывает на смартфонах, если вы нажмете только одну дату. Я не проверял это, так что это может быть что-то с моим кодом, но это случилось со мной дважды, и я не знаю, как это разобраться.

Я думаю, что придумал одно возможное решение, и оно выглядит следующим образом:

dayClick: function(date, jsEvent, view) {
    if(jsEvent.originalEvent.type=="touchend") {
        $('#calendar').fullCalendar('select', date);
    }
},
select: function(start, end, jsEvent, view) {
    clickOrSelect(start, end, jsEvent, view);
}
function clickOrSelect(start, end, jsEvent, view) {
    //put code for both events here
}
...