javascript - jQuery UI 可排序占位符出现在不正确的位置,但仅在第一次悬停时出现

标签 javascript jquery html css jquery-ui

当我将元素从一个 sortable 拖动到另一个连接的 sortable 时,我遇到了一个关于 jQuery UI 的 sortable 占位符初始定位的错误。

这是一张显示占位符出现在其应有位置上方一个索引位置的图片。请注意,RHS 列表中的 Item3 位于占位符下方,但当占位符出现时,我的指针完全位于 Item3 下方:

enter image description here

一旦 helper 被拖动多一点,位置就会自行修复,但会导致一些难看的闪烁。请注意,如果我将我的助手拖出 RHS 列表,然后将其拖回 RHS 列表——不会发生闪烁。它仅在第一次进入时出现。

Here's a working example of the issue

这是链接中引用的代码:

//  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) 中重现这个问题

纠正它的一种方法是在列表的末尾添加一个空的 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></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></div>
</div>

关于javascript - jQuery UI 可排序占位符出现在不正确的位置,但仅在第一次悬停时出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21225033/

相关文章:

javascript - 传递工厂返回值以在 Angularjs 中查看

javascript - 表单输入时移除占位符后显示div

jquery - 在使用 Dreamweaver 5.5 和 phonegap.js 构建时为 Android 应用程序添加加载图像

html - 我可以检测 outlook 客户端并更改我的 html 电子邮件的样式吗?

html - 现在是否已弃用小程序?

html - 仅用于打印 View 的特定 css

javascript - jQuery 星级评定插件 - 在回调中选择会导致无限循环

javascript 函数不执行,仅在控制台中有效

javascript - 在 JavaScript 中,如何有条件地向对象添加成员?

javascript - Chrome 中带有文本框的 sweetalert 对话框