我在使用jQuery UI的sortable插件时遇到了一个bug,即当我从一个已连接的sortable列表中拖动一个项目到另一个列表时,占位符的初始位置出现问题。
下面是一张图片,显示了占位符出现在本应该在下一索引位置的情况。请注意,RHS列表上的Item3在占位符下方,但是当占位符出现时,我的指针完全在Item3下方:
一旦助手被拖动更多,位置就会自行修正,但会引发一些难看的闪烁。请注意,如果我将助手从RHS列表中拖出,然后再拖回RHS列表-不会出现闪烁。它只会在第一次进入时出现。
这里是链接中提到的代码:
// HTML:
<div class='sortable-list'>
<div class='sortable-list-item'>Item1</div>
<div class='sortable-list-item'>Item2</div>
<div class='sortable-list-item'>Item3</div>
</div>
<div class='sortable-list'>
<div class='sortable-list-item'>Item1</div>
<div class='sortable-list-item'>Item2</div>
<div class='sortable-list-item'>Item3</div>
</div>
// CSS:
.sortable-list {
border: solid 1px black;
height: 250px;
margin-left: 5px;
overflow-y: auto;
overflow-x: hidden;
display: inline-block;
}
.sortable-list-item {
border: solid 1px red;
height: 50px;
width: 100px;
}
.sortable-placeholder {
background-color: #ebebeb;
}
// JS:
var sortlists = $('.sortable-list').sortable({
tolerance: 'pointer',
connectWith: '.sortable-list',
placeholder: 'sortable-placeholder sortable-list-item'
});
我希望确认这是jQuery UI的一个错误还是我的CSS需要更正,但我没有看到任何问题。
更新1:
以下是我在Chrome 33 beta上重现该问题的屏幕录像:http://screencast.com/t/cAV6xYXWUO
Chrome 版本 32.0.1700.76 m
。 - Trevor