JQ UI 在 iOS 上可拖动:在 taphold-handler 中启动拖动
JQ UI Draggable on iOS: initiating dragging in taphold-handler
在我们的应用程序中,我们希望从一个列表下拉到多个列表。问题是,当列表中有很多项目时 - 当元素可拖动时无法滚动。
作为解决方法,我们希望禁用元素的拖动能力,并仅在用户长按元素时启用它。
$('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/
目前为止一切正常,但用户需要再次点击才能拖动。如果用户可以在长按后立即开始拖动,那就太好了。
这里的答案 不适用于 iOS。
也许有人有想法。
使用延迟选项有意义吗? http://api.jqueryui.com/draggable/#option-delay
$("li").draggable().draggable( "option", "delay", 2000);
Fiddle: https://jsfiddle.net/dob3uegj/
编辑:
jqueryui-touch-punch (http://touchpunch.furf.com/) 添加到 fiddle 用于智能手机模拟:
https://jsfiddle.net/dob3uegj/1/
在我们的应用程序中,我们希望从一个列表下拉到多个列表。问题是,当列表中有很多项目时 - 当元素可拖动时无法滚动。
作为解决方法,我们希望禁用元素的拖动能力,并仅在用户长按元素时启用它。
$('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/
目前为止一切正常,但用户需要再次点击才能拖动。如果用户可以在长按后立即开始拖动,那就太好了。
这里的答案 不适用于 iOS。
也许有人有想法。
使用延迟选项有意义吗? http://api.jqueryui.com/draggable/#option-delay
$("li").draggable().draggable( "option", "delay", 2000);
Fiddle: https://jsfiddle.net/dob3uegj/
编辑: jqueryui-touch-punch (http://touchpunch.furf.com/) 添加到 fiddle 用于智能手机模拟: https://jsfiddle.net/dob3uegj/1/