【问题标题】:Jquery UI combine sortable and draggableJquery UI 结合了可排序和可拖动
【发布时间】:2013-08-26 07:27:57
【问题描述】:

我正在尝试组合一个可拖动面板(顶部)和一个可排序面板(底部)。

拖动工作正常,但排序失败。

这是我的 JS 小提琴: http://jsfiddle.net/dmUKY/9/

拖放功能和可排序功能共享droppable:drop 功能。 在对元素进行排序时,该函数必须替换所选对象。

 drop: function (event, ui) {
    //alert($(this).parent().html());
    //alert($(ui.helper).attr('class'));
    var obj;
    if ($(ui.helper).hasClass('draggable')) {
        //alert('draggable');
      obj = $(ui.helper).clone();  
      obj.removeClass('draggable').addClass('editable')
      //obj.addClass('droppable');
      $(this).parent().append(obj);

    }


    //alert($(this).parent().html());
}

我应该如何结合这两个功能?

【问题讨论】:

    标签: jquery draggable jquery-ui-sortable jquery-ui-draggable


    【解决方案1】:
    $("#sortable").sortable({
        revert: true,
        stop: function(event, ui) {
            if(!ui.item.data('tag') && !ui.item.data('handle')) {
                ui.item.data('tag', true);
                ui.item.fadeTo(400, 0.1);
            }
        }
    });
    $("#draggable").draggable({
        connectToSortable: '#sortable',
        helper: 'clone',
        revert: 'invalid'
    });
    $("ul, li").disableSelection();
    

    DEMO JSFIDDLE

    我猜这就是你要找的东西!

    【讨论】:

      【解决方案2】:

      将您的代码更改为此应该可以解决问题:

      obj.removeClass('draggable').addClass('editable').removeAttr('style');
      //obj.addClass('droppable');
      $(this).append(obj);
      

      检查小提琴:http://jsfiddle.net/dmUKY/11/

      【讨论】:

      • 谢谢!如果有 2 个单独的可排序区域,我该怎么办?我可以在它们之间交换物品吗? JSfiddle:jsfiddle.net/dmUKY/11
      • ra_htial 是最好的:)
      猜你喜欢
      • 2011-12-11
      • 2013-12-21
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多