【问题标题】:Require less overlap for jquery droppablejquery droppable 需要更少的重叠
【发布时间】:2012-07-31 21:00:47
【问题描述】:

我正在使用 jquery 设置一个可拖动的界面来执行我的拖放操作。我有一个高大的物体(400 像素 x 50 像素),我想将它放入一个小锚(100 像素 x 100 像素)中。似乎为了触发“drop”和“over”事件,至少一半的拖动容器必须在可放置容器的边界内,这在这种情况下不会发生,因为拖动容器要大得多.有没有办法减轻这种限制,以便触发这些事件?

【问题讨论】:

    标签: jquery jquery-ui drag-and-drop draggable droppable


    【解决方案1】:

    我相信您正在寻找 tolerance 选项:http://jqueryui.com/demos/droppable/#option-tolerance

    $( ".selector" ).droppable({ tolerance: "touch" });
    

    您可能还喜欢pointer 值:

    $( ".selector" ).droppable({ tolerance: "pointer" });
    

    更新

    如果你想限制某些 droppables 只在特定的 drop-zone 中放置,那么你可以设置 scope 选项:

    $( ".selector-1" ).droppable({ scope: "tasks" });
    $( ".selector-2" ).draggable({ scope: "tasks" });
    

    与上述相同的文档链接也将提供有关此选项的更多信息。

    【讨论】:

    • Touch 实际上是我一直在寻找的选项,但有没有办法强制它只选择一个可放置的容器?容器足够大,可以跨越多个锚点之间的距离。
    • 查看我的回答的更新,您很可能想要使用scope 选项。
    • 好主意,但不完全是这样。我认为贪婪可能会这样做,但这仅适用于嵌套控件。我想我可以围绕它进行编码,我只是在寻找一个快速的答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2012-08-13
    • 2016-04-08
    • 1970-01-01
    • 2021-08-07
    相关资源
    最近更新 更多