我刚刚发现了 fullCalendar jQuery 插件,它几乎可以完成我正在构建的约会安排服务所需的一切。但是,我遇到了一个小问题。
fullCalendar议程日视图中有“事件”元素是可拖动的,但是它们被锁定到可用时间段的时间段。我想保留这个对时间段的捕捉,但也可以将事件完全拖到日历之外(这是旧版本系统的行为要求)。
我的想法是在日历表的 mouseout 事件上克隆对象;这可行,但是用户必须从原始对象中单独单击并拖动克隆,而不是克隆接管被拖动。
一旦用户尝试将“事件”元素拖到表外,我需要将“我正在被拖”状态转移到克隆。这有可能吗?有没有我可以使用的更简单的解决方案?
这是我的克隆代码。eventDragStart 是一个“触发动作”,当用户开始拖动某个事件时调用(http://arshaw.com/fullcalendar/docs/triggered-actions.php),其中 $(this) 设置为事件元素, event 是 calEvent (实际数据项 - 这里不相关), js 是 javascript 事件(我在其中获取坐标), ui 是 ui 对象引用。“.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 的人都清楚这一点。我真的很感激任何帮助,很抱歉这么久。