Jquery UI - 从显示中获取一个元素:拖动时隐藏元素

Posted

技术标签:

【中文标题】Jquery UI - 从显示中获取一个元素:拖动时隐藏元素【英文标题】:Jquery UI - Getting one element out of a display:hidden element when dragging 【发布时间】:2010-11-18 12:06:43 【问题描述】:

我有一组元素位于另一个元素中的“传送器”元素上,该元素设置为溢出:使用 css 隐藏。我如何在拖动时将元素“移出”溢出设置为隐藏的支架元素?当我拖动“项目”分类图像时,它只在支架内拖动,当我尝试将其移到支架“外部”时,它会隐藏,并且不会移到旧支架元素之外。

<div class="holder" style="overflow:hidden;">
     <div class="conveyor">
          <img src="image1.jpg" class="item" />
          <img src="image2.jpg" class="item" />
          <img src="image3.jpg" class="item" />
     </div>
</div>

<script>

     $('.item').draggable();

</script>

我也尝试将新移动的元素附加到父元素,但是该项目不会恢复到我的持有者....请帮助!

试图追加项目:

$('.item').draggable(
     helper:'clone';
     revert:'invalid',
     start:function()
          $(this).parent().parent().append(this);
     
)

【问题讨论】:

【参考方案1】:

在这里找到答案 -> http://docs.jquery.com/UI/Draggable。是的……挖了几个小时!

通过 appendTo 选项传递或选择的元素将在拖动过程中用作可拖动助手的容器。默认情况下,辅助对象与可拖动对象附加到同一容器中。

$('.selector').draggable( appendTo: 'body' );

感谢您的帮助!

【讨论】:

【参考方案2】:

首先,感谢大卫。就我而言,我不得不添加另一个选项:

// Drag and Drop
$('.draggable').draggable( 
    revert: true,
    appendTo: 'body',
    helper: 'clone'
);

【讨论】:

【参考方案3】:

其中任何一个都能得到你想要的吗?

$('.item').draggable( containment: 'window' );

$('.item').draggable( containment: 'document' );

【讨论】:

两者都试过了...但无济于事...如果我尝试将它移到 '.holder' 的范围之外,'.item' 仍然是隐藏的,因为(我需要弄清楚如何以某种方式克服)“.holder”隐藏了它的子元素“.item”。有人告诉我这不是一个容易解决的问题。

以上是关于Jquery UI - 从显示中获取一个元素:拖动时隐藏元素的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Ui:无法从 Div 拖动元素并溢出

从一个列表中拖放 jQuery UI 可拖动元素并将其放入另一个列表的问题

如何使用 jquery ui 可拖动突出显示悬停时的可放置​​区域

如何使用 jQuery UI 获取可拖动和可调整大小元素的坐标

js中sortable怎么获取拖动的东西

jQuery UI 重新生成(僵尸)可拖动元素