jquery - 使用 jQuery UI 拖动可排序 Bootstrap 面板时出现奇怪的行为

标签 jquery twitter-bootstrap jquery-ui

我正在学习 jQuery UI 和 Bootstrap,并且正在尝试实现可拖动/可排序的面板,这几乎可以工作了。

我正在使用container模型(而不是 container-fluid ),我有多个面板。面板设置为根据屏幕尺寸分布在不同的列上。

拖动不在最右列的面板会用鼠标移动该面板,并且占位符会在鼠标下方移动除非将其移到右侧-大多数列。

如果从最右列拖动面板,该面板将出现在下一个面板的位置。

任何人都可以解释为什么会发生这种情况,以及我如何让它按预期工作 - 即我应该能够拖动任何面板并将其放置在任何位置?

要查看实际问题,请参阅 this jsfiddle (单击 here to see it full size )并尝试将不在右列中的面板拖到右列中。并尝试将右列中的面板拖动到任意位置。

HTML 设置如下(仅显示前两个面板)...

<div class="container">
  <div id="sortable" class="row">
    <div class="col-lg-2 col-md-3 col-sm-4 col-xs-4">
        <div class="panel panel-default">
            <div class="panel-heading">Test 1</div>
            <div class="panel-body">Content</div>
        </div>
    </div>
    <div class="col-lg-2 col-md-3 col-sm-4 col-xs-4">
        <div class="panel panel-default">
            <div class="panel-heading">Test 2</div>
            <div class="panel-body">Content</div>
        </div>
    </div>
    ...
  </div>
</div>

jQuery 设置为...

$(function () {
    $("#sortable").sortable().disableSelection();
});

我正在使用 jQuery 1.11.2、jQuery UI 1.10.3、Bootstrap 3.3.2

<小时/>

@AlexStack 提供的答案(为每个 <div> 添加透明边框顶部)几乎就在那里,但在当前 FireFox(测试时为 36.0.1)中不起作用/writing)...同样的问题发生。

有人知道涵盖所有主要浏览器的解决方案吗?

最佳答案

这似乎是 jQuery UI(或 Bootstrap,我不确定是哪一个)的错误。但添加不可见边框可以解决问题:

#sortable > div {
    border-top: 1px solid transparent;
}

您可以在这个 fiddle 中看到解决方案:http://jsfiddle.net/L6vnjhsp/2/

关于jquery - 使用 jQuery UI 拖动可排序 Bootstrap 面板时出现奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29018135/

相关文章:

jquery - 在哪里可以找到 Notepad++ 的 jQuery 语法突出显示插件?

javascript - 使用 jQuery 和 reddit API,尝试为每个帖子创建单独的 div

jquery - 如何使用 jQuery 修改 CSS 变量

html - 修复了底部导航栏下拉菜单在较小屏幕上下拉到导航栏的问题

jquery - bootstrap navbar collapse 不适用于良好的 jQuery 顺序?

javascript - 如何使用 MVC 5 中数据库中的值进行自动完成?

javascript - jquery函数作用域

javascript - 如何使用 javascript 获取 http 状态代码?

css - Bootstrap CSS 导航重叠

jquery - 在 jqGrid 中使用 jQuery UI Spinner