如何让 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);
否则您必须处理的事件是touchstart
、touchmove
和touchend
。
【讨论】:
感谢 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中如何避免div叠加?
如何以编程方式调用 jQuery UI Draggable 拖动开始?