未捕获的错误:在初始化之前无法调用可拖动的方法;试图调用方法“禁用”
Posted
技术标签:
【中文标题】未捕获的错误:在初始化之前无法调用可拖动的方法;试图调用方法“禁用”【英文标题】:Uncaught Error: cannot call methods on draggable prior to initialization; attempted to call method 'disable' 【发布时间】:2017-10-25 02:31:01 【问题描述】:https://jsfiddle.net/scottbeeson/r5du4p6k/12/
如果你长按拖动,当你释放你会得到以下错误:
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');
);
【问题讨论】:
【参考方案1】:由于您复制了原始元素,因此当您尝试删除 draggable
时 - 您也对刚刚复制的元素执行此操作(不可拖动),因此您不能 disable
它。
你可以做的是只在第一个元素上禁用它:
$('.draggable').first().draggable( 'disable' ).removeClass('draggable');
检查这个:https://jsfiddle.net/r5du4p6k/13/
【讨论】:
哦,可拖动事件的克隆?说得通。谢谢。 我没有使用.first()
,而是使用$('#container .draggable')...
限制了范围。这似乎更可靠。以上是关于未捕获的错误:在初始化之前无法调用可拖动的方法;试图调用方法“禁用”的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的类型错误:$(...).draggable 不是函数 [重复]
JQuery UI'可拖动不是函数'未捕获的TypeError
JQuery:未捕获的类型错误:无法读取未定义的属性“调用”
fullCalendar - 未捕获的类型错误:无法调用未定义的方法“拆分”
chrome.tabs.create 给出错误 - “未捕获的类型错误:无法调用未定义的方法‘create’”
chrome.runtime.sendMessage 引发“未捕获的类型错误:无法调用未定义的方法‘sendMessage’”