fullcalendar에서 휴지통으로 이벤트를 드래그 할 수 있도록 노력하고 있습니다. 코드는 캘린더가 초기화 될 때 렌더링되는 이벤트에 적합하지만 작동하지 않는 이벤트는있는 것처럼 보입니다. 외부 이벤트에서 캘린더에 떨어졌습니다.fullcalendar에서 외부로 삭제 된 이벤트를 삭제하는 방법은 무엇입니까?
캘린더에 외부 이벤트를 드래그하여 휴지통으로 드래그하면 모든 이벤트가 삭제됩니다.
this과 같이 _id 속성을 사용한다고하는 게시물을 보았습니다.하지만 그렇게하면 아무것도 삭제되지 않습니다. 내가 여기에 그것을 가지고, 아무것도하지 않는,
eventDragStop: function (event, jsEvent) {
var trashEl = jQuery('#trashCan');
var ofs = trashEl.offset();
var x1 = ofs.left;
var x2 = ofs.left + trashEl.outerWidth(true);
var y1 = ofs.top;
var y2 = ofs.top + trashEl.outerHeight(true);
if (jsEvent.pageX >= x1 && jsEvent.pageX <= x2 &&
jsEvent.pageY >= y1 && jsEvent.pageY <= y2) {
console.log(event);
$('#calendar').fullCalendar('removeEvents', event._id);
}
},
통과 event.id 작동하지만, event._id : 여기
은 내가 사용하는 코드입니다.편집 : 조금 명확히하기 위해 모든 관련 코드를 남겨 두어야합니다.
이것은 내 외부 이벤트를 처리하는 방법입니다. 여기
$('#external-events .menu-event').each(function() {
// store data so the calendar knows to render an event upon drop
$(this).data('event', {
title: $.trim($(this).text()), // use the element's text as the event title
stick: true // maintain when user navigates (see docs on the renderEvent method)
});
// make the event draggable using jQuery UI
$(this).draggable({
zIndex: 999,
revert: true, // will cause the event to go back to its
revertDuration: 0 // original position after the drag
});
});
그리고 내 드롭 기능입니다 :
<div id="external-events" class="dropdown col-lg-3">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Unscheduled Events
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
<li class="dropdown-header">Drag events to calendar</li>
<li class="divider"></li>
<li><a href="#" data-duration="01:00" data-event='{"id": "803", "title": "Jennifer Ramundo"}' class='menu-event'>My Event 1</a></li>
<li class="divider"></li>
<li><a href="#" data-event="{'id': '2'}" class='menu-event'>My Event 2</a></li>
<li class="divider"></li>
<li><a href="#" data-event="{'id': '3'}" class='menu-event'>My Event 3</a></li>
</ul>
</div>
내가 외부 이벤트를 초기화하는 방법 이것은이 : 첫 번째는 바로 내가 년 정도 근무했던 한 fullcalendar 예에서 복사 :
drop: function (date, jsEvent, ui, resourceId) {
console.log('drop', date.format(), resourceId);
$(this).parent().next().remove();
$(this).remove();
if ($('#external-events').find('.menu-event').length === 0) {
$('#external-events').hide();
}
},
확실한 질문이지만 끌어 놓는 외부 이벤트에 실제로 ID가 있습니까? – ADyson
예. 'data-event = "{ 'id': '2'} ''와 같은 속성을 각 이벤트에 추가했습니다. 단지 ID (모든 고유 한)를 부여하기 위해서입니다. id는 캘린더에있을 때 이벤트 객체에도 표시되지 않는 것 같습니다. 캘린더에 떨어 뜨린 것처럼 뭔가를하지 않으면 사라지는 것처럼 보입니다. 나는 다른 속성들을 시도해 왔으며, 그것이 유지하는 유일한 것은 제목이다. –