1

JS Bin 演示

任务:

我正在使用 jQuery UI 创建一个事件调度程序。事件有一定的长度(以分钟为单位),它们可以拖到不同的日子,每个日子都有自己的最大长度(以分钟为单位)。在示例中,每天的最大长度为 480 分钟,并且不应允许插入不超过 480 分钟的“事件”。

问题:

如果“事件”将导致“天”超过其最大时间长度(基于已放置在其上的元素的组合时间),则应禁用该“天”(此特定事件不允许放置)。

正如您从演示中看到的那样,我可以计算出每天事件的总时间(“可用分钟数”在拖动停止时更新),但我不知道如果事件被拖动,如何禁用进入当天会导致“可用分钟数”变为负数。

4

2 回答 2

2

最简单的方法是在开始时运行一个函数来检查是否有任何房间会被订满。我已经修改了您在此处提供的演示:修改后的演示

它当然可以使用一些改进,但本质上它会检查您正在拖动的事件的长度,并隐藏任何时间不足的房间的可排序 ul。我隐藏了房间,因为禁用它们会为时已晚。我还在每个房间 ul 之前的 html 中添加了一个跨度,以便在时间不足时显示。可能最好用 js 添加它,但没有太多时间进行细化。

希望有帮助!

于 2010-08-22T08:37:13.767 回答
2
$( "#daybox" /*or selector for days elements*/ ).bind( "sortreceive", function(event, ui) {

   if(/*percent*/ >= 100)

      $(ui.sender).sortable('cancel');
});

然后,被删除的元素返回到组。

于 2010-09-09T04:46:45.447 回答