2014-10-28 143 views
0

相互叠放我有通过jquery-ui标记为sortable两个列表。每个列表包含标记为draggable一个list item拖动项目的排序

enter image description here

正常使用情况下,我在其中拖放在一个相对正常速度的项目(请注意...正常是一个模糊的描述,但我想不出一个更好的),项目将拖动并没有任何问题的下降,从一个列表到另一个或得到重新安排自己的名单中:

enter image description here

但是,如果我迅速拖从列表中删除项目到另一个或内部他们自己的名单,他们倾向于堆叠在一起,而看到最底层的唯一方法就是尝试移动顶部。即使这样,有时我无法找到所有失踪(可能是底部的项目),甚至试图左右拖动想必顶的项目和重新排列后:

enter image description here

这里的HTML

<div id="available-group" class="noselect"> 
    <h1 class="group-header ui-widget-header">Group 1</h1> 
    <ul class="sortable"> 
     <li class="draggable ui-state-default">Item 6</li> 
     <li class="draggable ui-state-default">Item 7</li> 
     <li class="draggable ui-state-default">Item 8</li> 
     <li class="draggable ui-state-default">Item 9</li> 
     <li class="draggable ui-state-default">Item 10</li> 
    </ul> 
</div> 

<div id="selected-group" class="noselect"> 
    <h1 class="group-header ui-widget-header">Group 2</h1> 
    <ul class="sortable"> 
     <li class="draggable ui-state-default">Item 1</li> 
     <li class="draggable ui-state-default">Item 2</li> 
     <li class="draggable ui-state-default">Item 3</li> 
     <li class="draggable ui-state-default">Item 4</li> 
     <li class="draggable ui-state-default">Item 5</li> 
    </ul> 
</div> 

CSS

.sortable { 
    list-style-type: none; 
    margin: 0px 0px 10px 0px; 
    padding: 0; 
    border: 1px solid black; 
    min-height: 40px; 
} 

.sortable>li { 
    margin: 1px; 
    padding: 5px; 
} 

#available-group, #selected-group { 
    width: 170px; 
    user-select: none; 
    margin: 10px 150px 10px 0px; 
    min-height: 300px; 
    float: left; 
} 

JavaScript

$(".sortable").sortable({ 
    revert: "invalid" 
}); 

$(".draggable").draggable({ 
    connectToSortable: ".sortable", 
    revert: "invalid" 
}); 

我一直在试图解决这个问题,现在几天,似乎无法查明问题。如何阻止快速拖放造成的重叠“错误”?

编辑:

这里的jsfiddle:http://jsfiddle.net/xBB5x/6123/

回答

-1

非常奇特的错误。我看着控制台,看是否有异常如雨后春笋般冒出,发现在一段时间这一个弹出一次,而拖动项目零星:

Uncaught TypeError: Cannot read property '0' of null 
jquery-ui.js:5679$.widget._clear 
jquery-ui.js:5679(anonymous function) 
jquery-ui.js:415$.widget._mouseStop 
jquery-ui.js:4946(anonymous function) 
jquery-ui.js:415(anonymous function) 
jquery-ui.js:2403jQuery.extend.each 
jquery.js:657$.ui.plugin.add.drag 
jquery-ui.js:2304$.ui.plugin.call 
jquery-ui.js:304$.widget._trigger 
jquery-ui.js:2218(anonymous function) 
jquery-ui.js:415$.widget._mouseDrag 
jquery-ui.js:1799(anonymous function) 
jquery-ui.js:415$.widget._mouseMove 
jquery-ui.js:992(anonymous function) 
jquery-ui.js:415_mouseMoveDelegate 
jquery-ui.js:955jQuery.event.dispatch 
jquery.js:5095elemData.handle 

我删除从sortablerevert: "invalid"和错误走了。现在一切正常,没有任何明显的缺陷。

编辑:

我猜jQuery UI的文档有一个简单的方法来完成我的尝试:http://jqueryui.com/sortable/#connect-lists