jQuery FullCalendar在触摸设备上工作 – 但是事件的小问题

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

我已经设置了这个基本的jQuery FullCalendar设置,其中包含相关附加内容以支持触摸设备。

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

该演示适用于非触摸设备,但触摸设备很难。

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

一些关键点:

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

  • 如果您先点击/触摸另一个元素,然后可以拖动它,而不是其他元素,直到您先触摸它们。

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

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

我打赌这是一个单行修复,但我花了几个小时,只是不能让它做任何事情。

我只是想在iPad / iPhone上工作。

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

编辑:

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

 dayRender: function( date, cell) { cell.addTouch(); }, 

这至少可以让您在触摸设备上选择一天或几天,您可以在其他地方使用其他触控function来做更多function,但我还没有尝试过。


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

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

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

 $.support.touch = 'ontouchend' in document; if ($.support.touch) { $(element).draggable(); } 

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

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

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