Я хотел бы получить способ получить элемент HTML или селектор CSS (или ссылку на сам объект перетаскивания) для даты, когда был удален внешний перетаскиваемый элемент. Я попытался использовать следующее в обратном вызове drop (), чтобы получить узел для поля даты, используя координаты события drop:
var pageX = jsEvent.originalEvent.pageX;
var pageY = jsEvent.originalEvent.pageY;
var domElem = document.elementFromPoint(pageX, pageY);
var node = Y.one(domElem).ancestor('#calendar > .fc-content table.fc-border-separate tr > td', true);
(я использую методы YUI 3 Y.one () и ancestor () выше, чтобы получить нужный мне узел, но можно использовать и другие методы.)
Вышеприведенный код правильно определяет местонахождение блока даты, если капля НЕ попадает на верхнюю часть ячейки события, отображаемой в эту дату. Однако если падение действительно попадает в ячейку события, domElem оказывается ячейкой события, которая является абсолютно позиционированным элементом вне календаря, и приведенная выше методология ancestor () не работает.
Я также пытался получить ссылку на сбрасываемый объект с помощью свойства возврата перетаскиваемого элемента:
revert: function(droppableObj) {
if(droppableObj === false) {
alert('No droppableObj');
return true;
}
else {
alert(Y.dump({droppableObj: droppableObj}));
return false;
}
},
К сожалению, вышесказанное не работает. Даже несмотря на то, что внешний элемент правильно выпадает, функция возврата не распознает календарь как сбрасываемый. (Подробности см. В моем предыдущем сообщении stackoverflow по адресу: Fullcalendar: перетаскиваемый объект отклоняет fullcalendar как сбрасываемый, даже если fullcalendar принимает drop )
Единственная альтернатива, которую я могу придумать, - это использовать объект date в обратном вызове drop (), и с этим найти правильный элемент fc-dayXX, но это кажется довольно громоздким. Я уже искал по этому вопросу, но пока ничего не нашел. Если у кого-нибудь есть предложение, пожалуйста, дайте мне знать.