【问题标题】:jQuery UI Multiple Droppable - drag whole div element & clonejQuery UI Multiple Droppable - 拖动整个 div 元素并克隆
【发布时间】:2012-10-24 19:35:52
【问题描述】:

我刚刚开始使用 jQuery UI 将 div 拖到表格的列中。我有几个不同的可拖动 div,其中有不同的背景颜色和文本,我需要它们能够作为克隆拖动到放置区域。这通过使用 jQuery UI 的示例购物车代码可以正常工作,但是我已经对其进行了编辑,以便拖动整个对象而不是仅拖动文本,但这会出于某种原因消除克隆功能,即使我有 helper:clone。

这是我的代码:

<script>
$(function() {
    $( "ul li" ).draggable({
        appendTo: "body",
        helper: "clone"});
    $( ".day #drag" ).draggable({
        appendTo: "body"});
    $( ".day" ).droppable({
        activeClass: "ui-state-hover",
        hoverClass: "ui-state-active",
        accept: ":not(.ui-sortable-helper)",
        drop: function( event, ui ) {
            var targetElem = $(this).attr("id");

            $( this ).addClass( "ui-state-highlight" );
            $( ui.draggable ).appendTo( this );
        }
    }).sortable({
        items: "li:not(.placeholder)",
        sort: function() {
            $( this ).removeClass( "ui-state-default" );
        }
    });
});
</script>

示例列:

<td>
   <div id="monday" class="day monday ui-widget-content"></div>
</td>

可拖动元素:

<li><div style="background-color:#<?=$bgColor?>;color:<?=$textColor?>;" id="drag" class="<?=$subject?>"><?=$row['name']?></div></li>

它本质上是一个时间表设置工具。谢谢你的帮助

这是一个 jsFiddle 供参考:http://jsfiddle.net/x5T4h/

【问题讨论】:

  • 我没有看到任何错误。如果您提供jsfiddle.net,我很乐意为您提供帮助
  • @Bouillou 这是我的问题:jsfiddle.net/x5T4h 谢谢
  • 你的小提琴正在使用克隆功能,你期待什么?
  • 克隆功能是什么意思?不透明度?

标签: jquery-ui draggable droppable


【解决方案1】:

不确定这是否正是您想要的,但这是您的一个良好开端:http://jsfiddle.net/x5T4h/2/

基本上,我删除了第二个draggable 对象声明,并添加了克隆函数以在drop 事件$( ui.draggable ).clone().appendTo( this ); 中复制您的元素

$(function() {
    $( "ul li" ).each(function(){
        $(this).draggable({
            helper: "clone"
        });
    });

    $( ".day" ).droppable({
        activeClass: "ui-state-hover",
        hoverClass: "ui-state-active",
        accept: ":not(.ui-sortable-helper)",
        drop: function( event, ui ) {
            var targetElem = $(this).attr("id");
            $( ui.draggable ).clone().appendTo( this );
        }
    }).sortable({
        items: "li:not(.placeholder)",
        sort: function() {
            $( this ).removeClass( "ui-state-default" );
        }
    });
});​

【讨论】:

  • 是的,这很完美,非常感谢。如果用户有办法在列之间拖动 DIV(即重新组织它们),然后能够通过将其拖走将其从列中完全删除,您不会碰巧知道吗?如果不是没关系,请不要担心。谢谢
  • 只需在克隆元素上调用可拖动插件即可。对于移除,设置另一个放置目标来检查元素是否是克隆,如果是,则将其从 DOM 中移除。
  • 与 1.11.0 中断,你能告诉我为什么它只与 1.8.3 一起运行
猜你喜欢
  • 2016-04-08
  • 2014-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 2011-01-28
  • 1970-01-01
  • 2012-06-16
相关资源
最近更新 更多