Javascript 通过将事件拖到完整日历V 2之外(带或不带垃圾箱图标…)来删除事件

Javascript 通过将事件拖到完整日历V 2之外(带或不带垃圾箱图标…)来删除事件,javascript,jquery,events,fullcalendar,Javascript,Jquery,Events,Fullcalendar,有人能给我一些建议吗?关于如何从FullCalendar版本2中删除事件,请将其从日历中拖出 我在这里看到了一些解决方案: 但它似乎解决了版本1。我的第一个方法是: eventDragStop: function(event,jsEvent) { alert('Coordinates: ' + jsEvent.pageX + ',' + jsEvent.pageY); if( (300 <= jsEvent.pageX) & (jsEvent.pageX <=

有人能给我一些建议吗?关于如何从FullCalendar版本2中删除事件,请将其从日历中拖出

我在这里看到了一些解决方案:


但它似乎解决了版本1。我的第一个方法是:

eventDragStop: function(event,jsEvent) {
    alert('Coordinates: ' + jsEvent.pageX + ',' + jsEvent.pageY);
    if( (300 <= jsEvent.pageX) & (jsEvent.pageX <= 500) & (130 <= jsEvent.pageY) & (jsEvent.pageY <= 170)){
      alert('delete: '+ event.id);
      $('#MyCalendar').fullCalendar('removeEvents', event.id);
    }
}
  • eventDragStop是:

    eventDragStop: function(event,jsEvent) {
    
        var trashEl = jQuery('#calendarTrash');
        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) {
            alert('SIII');
            $('#calendario').fullCalendar('removeEvents', event.id);
        }
    }
    
    eventDragStop:函数(event,jsEvent){
    var trashEl=jQuery(“#calendarTrash”);
    var ofs=trashEl.offset();
    var x1=ofs.左;
    var x2=ofs.left+trashEl.outerWidth(真);
    变量y1=ofs.top;
    变量y2=ofs.top+trashEl.outerHeight(真);
    if(jsEvent.pageX>=x1&&jsEvent.pageX=y1&&jsEvent.pageY
    eventDragStop:function(event,jsEvent){
    var trashEl=jQuery(“#calendarTrash”);
    var ofs=trashEl.offset();
    var x1=ofs.左;
    var x2=ofs.left+trashEl.outerWidth(真);
    变量y1=ofs.top;
    变量y2=ofs.top+trashEl.outerHeight(真);
    如果(jsEvent.pageX>=x1&&jsEvent.pageX=y1&&jsEvent.pageY不带jQuery:

            eventDragStop: function(e) {
                let trashEl = document.getElementById('fcTrash') as HTMLElement;
    
                let x1 = trashEl.offsetLeft;
                let x2 = trashEl.offsetLeft + trashEl.offsetWidth;
                let y1 = trashEl.offsetTop;
                let y2 = trashEl.offsetTop + trashEl.offsetHeight;
    
                if (e.jsEvent.pageX >= x1 && e.jsEvent.pageX <= x2 &&
                    e.jsEvent.pageY >= y1 && e.jsEvent.pageY <= y2) {
                        e.event.remove();
                }
            }
    
    eventDragStop:函数(e){
    将trashEl=document.getElementById('fcTrash')作为HTMLElement;
    设x1=trashEl.offsetLeft;
    设x2=trashEl.offsetLeft+trashEl.offsetWidth;
    设y1=trashEl.offsetTop;
    设y2=trashEl.offsetTop+trashEl.offsetHeight;
    
    如果(e.jsEvent.pageX>=x1&&e.jsEvent.pageX=y1&&e.jsEvent.pageY工作得很好。谢谢。我只需要将event.id更改为event。_idI使用一个外部垃圾桶div来完成此操作,事件可以拖动到该垃圾桶以将其删除。为什么jQueryUi jsut不使用此功能使垃圾桶div.droppagey可拖放。拖动时甚至无法识别完整的日历事件为什么?这对我来说很有效,只是在它被删除之前,它会显示事件回到其原始日期的动画。我如何防止这种情况?@skeletank检查dragRevertDuration属性-用于防止动画。@RredCat是否仅当事件被放在垃圾箱上时才为其设置dragRevertDuration?如果是,如何防止还应该指出,这是最新版本(5.0)的fullcalendar实现这一点的方法(函数中只有'info',不再有两个变量-)
     eventDragStop: function(event,jsEvent) {
    
            var trashEl = jQuery('#calendarTrash');
            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) {
                    if (confirm("Are you sure to  detete " + event.title +" ?")) {
                        //pour annuker les informations
                        $('#external-calendar').fullCalendar('removeEvents', event._id);
                    }
    
            }
        }
    
    <div id="calendarTrash" class="calendar-trash"><img src="images\trash.png"  alt="image"/></div>
    
            eventDragStop: function(e) {
                let trashEl = document.getElementById('fcTrash') as HTMLElement;
    
                let x1 = trashEl.offsetLeft;
                let x2 = trashEl.offsetLeft + trashEl.offsetWidth;
                let y1 = trashEl.offsetTop;
                let y2 = trashEl.offsetTop + trashEl.offsetHeight;
    
                if (e.jsEvent.pageX >= x1 && e.jsEvent.pageX <= x2 &&
                    e.jsEvent.pageY >= y1 && e.jsEvent.pageY <= y2) {
                        e.event.remove();
                }
            }