Я только что обнаружил плагин fullCalendar jQuery, который делает практически все, что мне нужно для службы планирования встреч, которую я создаю. Однако я столкнулся с небольшой проблемой.
В представлении повестки дня fullCalendar есть элементы «события», которые можно перетаскивать, однако они привязаны к количеству доступных временных интервалов. Я хочу сохранить привязку к временным интервалам, но также сделать возможным перетаскивание события полностью за пределы календаря (это требование поведения из более старой версии системы).
Моя идея состояла в том, чтобы сделать клон объекта для события mouseout для календарной таблицы; это работает, но затем пользователь должен щелкнуть и перетащить клон отдельно от исходного объекта, а не перетаскивать клон.
Мне нужно передать статус «Меня перетаскивают» клону, как только пользователь пытается перетащить элемент «событие» за пределы таблицы. Это как-то возможно? Возможно, я мог бы использовать более простое решение?
Вот мой код, который выполняет клонирование. eventDragStart - это «инициируемое действие», вызываемое, когда пользователь начинает перетаскивать событие о (http://arshaw.com/fullcalendar/docs/triggered-actions.php),, в котором $ (this) установлено для элемента события, событие - это calEvent (фактический элемент данных - здесь не имеет значения) ), js - это событие javascript (где я получаю координаты), пользовательский интерфейс - это ссылка на объект пользовательского интерфейса. ".fc" - календарь, "#display_box" - родительский элемент, содержащий эту часть интерфейса. (Кстати, позиционирование пока не работает, но сейчас это второстепенный приоритет).
...
eventDragStart: function (event, js, ui) $\{
var eventElement = $(this);
$(".fc").mouseout(function () {
eventElement.clone().css({'z-index':99999, top:js.clientY, right:js.clientX).appendTo("#display_box").draggable({helper: 'original'});
$(".fc").unbind("mouseout");
});
},
....
Надеюсь, это понятно всем, кто не использовал fullCalendar. Я бы очень признателен за любую помощь, и извините, что так долго.