Javascript 拖放;下载IPad Web应用程序-保留滚动功能

Javascript 拖放;下载IPad Web应用程序-保留滚动功能,javascript,jquery,ipad,jquery-ui,web-applications,Javascript,Jquery,Ipad,Jquery Ui,Web Applications,我将jQueryUI拖放()与 将触摸事件映射到鼠标事件。到目前为止,整个拖放操作工作正常 我现在的问题是,我有一个很长的可拖动元素列表,我需要能够在IPad上滚动列表。。。当我使列表元素可拖动时,这将不再起作用 我尝试使用jqueryui提供的约束,如距离和延迟 -但即便如此,scroll事件似乎也被完全禁用/覆盖在drag事件上 我可能需要编写一个自定义函数,比如“仅当向左移动至少50 px使其可拖动”之类的 有没有人遇到过类似的问题并愿意分享som的想法? 是否有其他移动web框架(如Se

我将jQueryUI拖放()与 将触摸事件映射到鼠标事件。到目前为止,整个拖放操作工作正常

我现在的问题是,我有一个很长的可拖动元素列表,我需要能够在IPad上滚动列表。。。当我使列表元素可拖动时,这将不再起作用

我尝试使用jqueryui提供的约束,如
距离
延迟
-但即便如此,scroll事件似乎也被完全禁用/覆盖在drag事件上

我可能需要编写一个自定义函数,比如“仅当向左移动至少50 px使其可拖动”之类的

有没有人遇到过类似的问题并愿意分享som的想法? 是否有其他移动web框架(如Sencha或JQmobile)配备了此类功能


提前感谢…

当然这取决于您的设计,但您可以尝试使用手柄

以下是jQuery UI的文档示例:

<div id="draggable" class="ui-widget-content">
    <p class="ui-widget-header">drag with handle</p>
</div>
<div id="draggable2" class="ui-widget-content">
    <p>drag from content</p>
    <p class="ui-widget-header">not drag with handle</p>
</div>

$("#draggable").draggable({handle:"p"});
$("#draggable2").draggable({cancel:"p.ui-widget-header"});

用手柄拖动

从内容中拖动

不能用手柄拖动

$(“#draggable”).draggable({handle:p}); $(“#draggable2”).draggable({取消:“p.ui-widget-header”});
或者至少取消选项可以给你一个开始


我通过从 此解决方案中的代码:

最后,我所需要调整的就是删除
事件.preventDefault()以重新启用scolling

编辑

基本上,我使用了我链接的第二个答案中的代码,并做了一些调整。
这是我的解决方案,希望能有所帮助:

谢谢你的回答。。。我试着在
  • 元素中添加一个可拖动的元素,但这不是理想的UI设计。整个
  • 应该是可拖动和可滚动的……你的ul标签是否使用了iPad宽度的100%?使用类似于他们在.slider()演示页面上所做的操作如何:这个简单的滚动条示例可能是一个很好的解决方法。另一个解决方法是添加一个按钮,使整个东西可拖动或不拖动,但这同样取决于你的应用程序应该做什么…不,它只喜欢20%的landcscape视图。有两个带有拖动元素和60%宽度画布拖放区的可滚动列表。我发现,如果将事件.preventDefault()包装在一个if语句中,只会导致它在mousemove上触发,那么它就可以防止阻止其他事件类型的任何问题。请发布一个JSFIDLE javascript工作示例,好吗?现在还不清楚需要做什么修改。添加了一把我的解决方案我在iPhone中打开了JSFIDLE,并放大“Element 1”div以测试滚动。我发现触摸一个元素并滚动不会滚动,而是移动元素。我可能误解了,但我认为这样做是为了在触摸可拖动的div时允许滚动,并且只有在触摸div一段时间后才允许拖动。此外,您可能希望防止ui sortable在拖动时滚动,例如在拖动时添加css类。