如何让 jQuery UI 的 Draggable 和 Sortable 函数在 iPhone 上工作?

Posted

技术标签:

【中文标题】如何让 jQuery UI 的 Draggable 和 Sortable 函数在 iPhone 上工作?【英文标题】:How can I get jQuery UI's Draggable and Sortable functions to work on the iPhone? 【发布时间】:2011-02-21 15:53:31 【问题描述】:

我有一个使用 JQuery UI 的页面;特别是Sortable 交互。

该页面适用于带有鼠标的桌面网络浏览器,但是我无法在 iPhone 上的 Mobile Safari 上使用拖放功能。任何拖动操作都只会滚动页面。

我页面上的功能与 JQuery UI 站点上的 Sortable Empty-Lists 演示非常相似。此页面也无法在 iPhone 上运行。

有什么方法可以让拖放功能在 iPhone 上运行?

【问题讨论】:

【参考方案1】:

根据 Mobile Safari 文档,不支持拖放,但可以模拟。由于基本上拖动手指会滚动浏览器,因此您必须禁用它。可以这样做:

$(document).bind('touchmove', function(e) 
   e.preventDefault();
, false);

否则您必须处理的事件是touchstarttouchmovetouchend

【讨论】:

感谢 Jakub,您是否参考了 Mobile Safari 文档? developer.apple.com/safari/library/documentation/… 及附近。 非常感谢,这让我省去了一些挖掘工作。【参考方案2】:

这是一个 jquery ui 1.9pre 的演示: https://dl.dropbox.com/u/3872624/lab/touch/index.html

jquery.mouse.ui.js 文件非常适合我。

【讨论】:

使用 1.9 和 jquery.mouse.ui.js 是票,所以谢谢!一开始使用 1.8 似乎可行,但 sortable 和 draggable 有一些小怪癖,使其无法使用。 不幸的是,如果您尝试在 Sortable 中使用“handle”选项,这将无法正常工作。拖动一个项目后,任何进一步的拖动其他项目的尝试最终都会拖动第一个项目。我正在调查这个问题。这也提到了here。

以上是关于如何让 jQuery UI 的 Draggable 和 Sortable 函数在 iPhone 上工作?的主要内容,如果未能解决你的问题,请参考以下文章

让 jQuery UI draggable 适配移动端

jQuery ui.draggable 事件/状态恢复

jquery ui draggable中如何避免div叠加?

如何以编程方式调用 jQuery UI Draggable 拖动开始?

jquery ui draggable - 如何防止拖动到文档顶部之外?

jQuery-ui-draggable 将像素值转换为百分比