iOS上的JQ UI可拖拽:启动拖拽处理程序中的拖拽

在我们的应用程序中,我们希望从一个列表中删除。 问题是,当列表中的项目很多时 – 元素可拖动时不可能滚动。

作为解决方法,我们希望禁用元素的拖拽能力,并仅在用户长时间点击元素时才启用该元素。

$('li').bind('taphold', function (event, ui) { console.log('taphold'); clearAll(); // clearing all other catched $(this).addClass('catched') $(this).draggable('enable'); }); 

这里是jsfiddle https://jsfiddle.net/nrxaqc34/10/

到目前为止它工作,但用户需要再次点击才能拖动。 如果用户可以在长时间点击后立即开始拖动,那就太好了。

这个答案在这里https://stackoverflow.com/a/9922048/582727不适用于iOS。

也许有人有一个想法。

使用延迟选项有意义吗? http://api.jqueryui.com/draggable/#option-delay

 $("li").draggable().draggable( "option", "delay", 2000); 

小提琴: https : //jsfiddle.net/dob3uegj/

编辑:jqueryui-touch-punch( http://touchpunch.furf.com/ )添加到小提琴智能手机模拟: https : //jsfiddle.net/dob3uegj/1/