html拖拽垃圾桶,javascript – 从fullcalendar中删除元素(通过拖动到垃圾桶)

完整的教程,如何添加“移至垃圾桶”功能到fullcalendar

如果不想使用droppable:

从fullcalendar.css删除这行

.fc-view

{

/* prevents dragging outside of widget */

width: 100%;

overflow: hidden;

}

在fullcalenar.js中找到(行cca 6086)

function eachEventElement(event,exceptElement,funcName) {

var elements = eventElementsByID[event._id],i,len = elements.length;

for (i=0; i

if (!exceptElement || elements[i][0] != exceptElement[0]) {

elements[i][funcName]();

}

}

}

并更改为:

function eachEventElement(event,i;

if (elements != null) {

var len = elements.length;

for (i = 0; i < len; i++) {

if (!exceptElement || elements[i][0] != exceptElement[0]) {

elements[i][funcName]();

}

}

}

}

在js:

//actually cursor position

var currentMousePos = {

x: -1,y: -1

};

//set actually cursor pos

jQuery(document).ready(function () {

jQuery(document).on("mousemove",function (event) {

currentMousePos.x = event.pageX;

currentMousePos.y = event.pageY;

});

});

//check if cursor is in trash

function isElemOverDiv() {

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 (currentMousePos.x >= x1 && currentMousePos.x <= x2 &&

currentMousePos.y >= y1 && currentMousePos.y <= y2) {

return true;

}

return false;

}

//fullcalendar mouSEOver callback

eventMouSEOver: function (event,jsEvent) {

$(this).mousemove(function (e) {

var trashEl = jQuery('#calendarTrash');

if (isElemOverDiv()) {

if (!trashEl.hasClass("to-trash")) {

trashEl.addClass("to-trash");

}

} else {

if (trashEl.hasClass("to-trash")) {

trashEl.removeClass("to-trash");

}

}

});

},//fullcalendar eventdragstop callback

eventDragStop: function (event,jsEvent,ui,view) {

if (isElemOverDiv()) {

jQuery('#fr-calendar').fullCalendar('removeEvents',event.id);

var trashEl = jQuery('#calendarTrash');

if (trashEl.hasClass("to-trash")) {

trashEl.removeClass("to-trash");

}

}

},

在fullcalendar设置选项dragRevertDuration:0,

在fullcalendar声明中添加加载回调函数附加trashcalendar:

loading: function (bool) {

if (!bool) {

jQuery('.fc-header-left').append('

cal-trash.png
');

}

},

垃圾的css:

div.calendar-trash{

float: left;

padding-right: 8px;

margin-right:5px;

padding-left:8px;

padding-top: 3px;

cursor: pointer;

}

.to-trash{

background-color:#EAEAEA;

-webkit-border-radius: 5em;

border-radius: 5em;

}

如果加载回调不起作用,请在jquery文档就绪功能的末尾添加垃圾桶.

foo.JFS('.fc-header-left').append('

cal-trash.png
');

垃圾图标:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值