0

我刚刚发现了 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 的人都清楚这一点。我真的很感激任何帮助,很抱歉这么久。

4

2 回答 2

0

好吧,我认为你会想要使用eventElement.clone(true)传递该布尔值 true 作为参数来克隆元素的所有附加事件/处理程序,而不传递只会克隆包装在 jQ 中的圆顶元素。

于 2009-12-17T12:31:17.347 回答
0

如果有人对我使用的解决方案感兴趣,我最终编写了自己的迷你可拖动功能 - 如果用户移出日历表,我只是在拖动事件期间克隆对象,并手动更新克隆的 css 顶部/左侧值直到拖动事件结束。这意味着原始对象仍会在表格中上下拖动,这不是很理想,但这是我能想到的提供客户所需功能的最佳解决方案。

于 2009-12-23T11:14:33.990 回答