【问题标题】:Remove draggable containment移除可拖动的容器
【发布时间】:2013-04-25 13:45:49
【问题描述】:

您可以像这样动态添加遏制:

$(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 );
            }
        });

【问题讨论】:

  • 你具体想要什么?您要删除/禁用可拖动对象还是仍希望它可拖动但不包含?或者可能包含在不同的边界内?
  • 传递“none”保持容器为父容器?
  • 试试 $(this).draggable("option", "containment", false);
  • 是的,“none”将其保留为“parent”。我希望它是可拖动的但不包含在内。将其设置为 false 无效

标签: javascript jquery draggable containment


【解决方案1】:

取决于你想做什么......

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

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

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

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

或者通过指定确切的边界。

$(this).draggable( "option", "containment", [x1, y1, x2, y2] );

或者正如 Menencia 在 cmets 中提到的,您可以尝试将遏制设置为 false

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

【讨论】:

  • 我必须仍然能够拖动该项目。将容器设置为“窗口”对我不起作用。像这样将其设置为 false 根本不起作用.. :(
  • 我相信 false 正在工作,但不是你想要的。设置为“文档”而不是“窗口”或实际使用[x1, y1, x2, y2] 指定边界怎么样?
  • 太棒了!我将更新我的答案以包含该选项。
猜你喜欢
  • 2014-03-05
  • 1970-01-01
  • 1970-01-01
  • 2014-12-15
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 2015-11-29
  • 1970-01-01
相关资源
最近更新 更多