draggable / droppable / sortable中第一个子元素的错误

时间:2014-05-04 10:46:02

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

目前为我的网站创建拖放播放列表功能,并使用以下代码将视频拖放到播放列表容器中:

var transferred = false;
$( "#videoResultsDiv li" ).draggable({

  connectToSortable: '#Playlist',
  helper: 'clone',
    start: function(event, ui)
    {
        $(this).hide();
    },
    stop: function(event, ui)
    {
        if(!transferred)
            $(this).show();

        else
        {
            $(this).remove();
            transferred = false;
        }
    }
});


    $("#Playlist").droppable({
  tolerance: 'touch',
drop:function(event, ui) {
  ui.draggable.appendTo($(this));

  $(this).sortable({
    tolerance: 'pointer',
receive: function (event, ui) {
  transferred = true;
}});
}});

这适用于Playlist容器中的大多数视频,但第一个要放入容器的视频会带来videoResultsDiv的样式和功能,从而导致各种错误,包括重复。我尝试了var transferred的各种排列,将connectToSortable更改为appendTo(我发现的当前配置只允许我将视频从videoResultsDiv拖入外部Playlist容器),并删除ui.helper克隆,但都会导致某些问题或其他问题。

1 个答案:

答案 0 :(得分:1)

答案是摆脱可放置的代码,按照这个jsfiddle:http://jsfiddle.net/xD2dW/12/

$('#sortable').sortable({
    receive: function(event, ui)
    {
        transferred = true;
    }
});