iOS上的JQ UI Draggable:在taphold-handler中启动拖动

时间:2016-03-15 14:07:37

标签: javascript jquery ios jquery-ui jquery-mobile

在我们的应用中,我们希望从一个列表中删除。问题是,当列表中有许多项目时 - 当元素可拖动时,无法滚动。

作为解决方法,我们希望禁用元素的可拖动性,并仅在用户长时间点击元素时启用它。

    $('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上无效。

也许有人有个主意。

1 个答案:

答案 0 :(得分:2)

使用延迟选项是否有意义? 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/