我已经尝试过任何事情来做这件事,但总是得到同样的错误
$(".tooltip").draggable('disable');
错误:在初始化之前无法调用draggable上的方法;试图调用方法'禁用'
在初始化之前?所以我不能删除它实际被拖动之前的选项?我也试过使用droppable,似乎无法启用它们而不会出现此错误。
编辑: 我发现我有一个没有可拖动类的元素(当你看错误时这是有意义的)。现在我只需找到一种方法,以便在不抛出错误的情况下禁用所有可拖动的东西:)
答案 0 :(得分:27)
试试这个:
$(".tooltip").draggable({ disabled: true });
这会在禁用状态下初始化可拖动状态。然后你可以使用
$(".tooltip").draggable("enable");
稍后当你想允许拖动时。
答案 1 :(得分:5)
我能够在这个jsfiddle中重新创建你的场景:
http://jsfiddle.net/dboots/NDZKY/
这是使用
$('.draggable').draggable('disable');
和
$('.draggable').draggable('enable');
有什么不同的东西,你不能做同样的事情吗?看起来你的语法相同。
答案 2 :(得分:2)
查看文档http://api.jqueryui.com/draggable/
以及此处的示例:
http://jqueryui.com/draggable/
您是否“包含”了jquery-ui.js库?
尝试这个小提琴! http://jsfiddle.net/3Lrg2/23/
答案 3 :(得分:0)
使用一键来启用并停用
$("#container").draggable({disabled:false});
$("#container").draggable({disabled:true});
下面给出的简单示例:
<div id = "container"></div>
<button id = "control"></button>
<script>
$(document).ready(function()
{
$("#control").click(function()
{
if($("#control").hasClass("active")
{
$("container").draggable({disabled:true});
$("control").removeAttr("class","active");
}
else
{
$("container").draggable({disabled:false});
$("control").attr("class","active");
}
});
});
</script>
答案 4 :(得分:-1)
尝试使用.unbind('ondrag')从元素中删除事件。
抱歉,我认为它应该是$(“工具提示”)。解绑('draggable')并非100%确定事件名称。