移除可拖动限制

3
您可以通过以下方式动态添加内容限制:
$(this).draggable( "option", "containment", "parent" );

我该如何再次删除包含呢? 例如:

$(this).draggable( "option", "containment", "none" );

除了那个方法不起作用之外...我在API文档中找不到任何有关它的方法。

编辑:我希望能够拖动该项目,但没有任何限制。我正在使用复选框:

        var denne = $(this);
        if ($('#containment').is(':checked')) {
            $(this).draggable( "option", "containment", "parent" );
        }
        $("#containment").each(function(){
            if ($(this).prop('checked')==false){ 
                denne.draggable( "option", "containment", false );
            }
        });

你具体想要什么?你是想移除/禁用可拖动功能,还是希望保留可拖动功能但不受限于特定区域?或者是希望在不同的边界内进行限制? - Miguel-F
1
传递“none”会保持容器作为父级吗? - James Montagne
尝试使用 $(this).draggable( "option", "containment", false ); - Menencia
是的,“none”会保持为“parent”。 我希望它可以被拖动但不受限制。 将其设置为false没有起作用。 - Koiski
1个回答

1

根据您想要实现的功能...

您可以“禁用”元素,使其不再可拖动。

$(this).draggable( "option", "disabled", true );

或者您可以更改包含边界,以便元素可以在原始约束范围之外拖动。

$(this).draggable( "option", "containment", "window" );

或者通过指定确切的边界。
$(this).draggable( "option", "containment", [x1, y1, x2, y2] );

如评论中Menencia所提到的,您可以尝试将containment设置为false。

$(this).draggable( "option", "containment", false );

我仍然必须能够拖动该项。 将约束条件设置为“window”对我无效。 像这样将其设置为false根本不起作用。 :( - Koiski
1
我相信 false 是有效的,但这不是你想要的。将其设置为 "document" 而不是 "window",或者实际上使用 [x1,y1,x2,y2] 指定边界怎么样? - Miguel-F
太好了!我会更新我的答案,包括那个选项。 - Miguel-F

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接