https://jsfiddle.net/scottbeeson/r5du4p6k/12/
如果长按拖动,则在发布时会出现以下错误:
未捕获错误:无法在初始化之前调用draggable上的方法;试图调用方法'禁用'
var t;
$(document).on('touchstart mousedown','.menu-item', function (event) {
var self = this;
if ($(self).hasClass('draggable')) return;
t = setTimeout(function () {
$(self).draggable({
revert: true,
helper: 'clone',
opacity: .75,
appendTo: 'body'
}).draggable('enable').addClass('draggable');
$(self).trigger(event)
}, 800);
});
$(document).on("touchend mouseup", function () {
clearTimeout(t);
$('.draggable').draggable( 'disable' ).removeClass('draggable');
});
答案 0 :(得分:2)
由于您复制了原始元素,因此当您尝试删除draggable
时 - 您也会对刚复制的元素(不可拖动)执行此操作,因此您无法{{1}它。
您可以做的是仅在第一个元素上禁用它:
disable