8

http://page-test.co.uk/cal/ - FullCalendar 演示

我已经设置了它,这是一个基本的 jQuery FullCalendar 设置,带有相关的附加功能,以支持触摸设备。

链接页面中包含的文件都是默认文件。

该演示在非触摸设备上完美运行,但触摸设备却很难。

主要在 iPhone/iPad 上进行测试(其他触摸设备或多或少完全相同)一旦拖动一个项目,另一个就不能了。所以你可以拖动任何项目,但其他项目都被锁定了。

一些关键点:

  • 更改视图(月/周等)然后允许再次拖动所有内容

  • 如果您先点击/触摸另一个元素,则可以拖动该元素,但不能拖动其他元素,直到您先触摸这些元素。

  • 在 BlackBerry Playbook 上,它的行为实际上略有不同。如果你去拖动一个不同的元素(通常什么都不会发生),那么在 PlayBook 上它似乎什么都不做(当你在屏幕上滑动手指时) - 但是当你放手时(还没有发生任何事情)让go 它选择可拖动元素,然后取消选择它。如果你然后去拖动那个元素它工作正常。

  • 更改设备的方向会立即锁定页面上的所有元素,并且必须先将视图更改为月/周或触摸元素一次,然后才能再次拖动任何内容。

我敢打赌这是一个单行修复,但我已经花了几个小时,只是无法让它做任何事情。

我只想让它在 iPad/iPhone 上运行。

似乎是 mouseup/touchend 没有触发某些东西,或者 touchstart 事件在第一次拖动后被删除,但我无法解决问题。

4

2 回答 2

8

编辑:

我使用Touch Punch和 dayRender 允许在触摸设备上选择一天或多天。我刚刚添加了源并将 Touch Punch 中的 addTouch() 函数添加到白天单元格的渲染中:

dayRender: function( date, cell) {

cell.addTouch();

},

这至少可以让您在触摸设备上选择一天或几天,您也许可以在其他地方使用其他 Touch Punch 功能来做更多事情,但我还没有尝试过。


我在 iPad 上遇到了同样的问题。我也尝试使用我的全日历应用程序https://github.com/jboesch/jQuery-fullCalendar-iPad-drag-drop并且可以拖动一个事件但不能拖动另一个事件,它会滚动。我禁用了滚动,但仍然得到相同的行为。我还尝试了这里提到的最后一个选项https://code.google.com/p/fullcalendar/issues/detail?id=724&q=ipad&colspec=ID%20Type%20Status%20Milestone%20Summary%20Stars这个项目https:// github.com/joshgerdes/jquery.ui.touch

我还想选择几天或几小时来创建一个事件。我在 iPad 上查看了 google 的日历,它也缺少此功能,如果移动版本无法在您的浏览器上运行(iPad 上的 safari),他们会收到使用移动版本的通知。移动版不会在月视图中显示任何事件,因此这不适用于我的应用程序。具有可选择性和拖放功能的功能齐全的完整日历将是理想的,但触摸设备可能无法很好地支持这一点。我也会继续寻找解决方案,但如果 google 不提供该功能,它可能不容易实现,我们可能需要提供移动版本和/或没有可选择性和在触摸屏上拖放的直播. 我也非常感谢其他人的帮助。

于 2013-06-28T19:16:53.157 回答
1

使用触摸打孔拖动事件,在 eventRender 中添加代码:

$.support.touch = 'ontouchend' in document;

if ($.support.touch) {  
     $(element).draggable();
}

要为 daycells 添加触摸功能,请使用另一个触摸 js 文件: https ://github.com/joshgerdes/jquery.ui.touch 并在 dayRender 中添加 cell.addTouch()

几天后,我的日历中也会有(基于 Fullcalendar)

http://codecanyon.net/user/wolberspl/portfolio?ref=wolberspl

于 2015-08-21T17:41:24.630 回答