【问题标题】:Why isn't scrolling working in my jQuery UI sortable?为什么滚动在我的 jQuery UI 排序中不起作用?
【发布时间】:2011-01-30 04:00:01
【问题描述】:

我在使用 jQuery UI 的可排序功能时遇到问题。滚动似乎不起作用。

如果第二个列表(列表是在 tbody 中的表行上创建的,并且每个 tbody 都是连接的)不可见,我希望它可以滚动到它以删除我的表行。

这是我的 HTML 设置:

<ul>
    <li>
        <ul>
            <li>
                <table class="treeleerling">
                    <tbody class="oder0">

                        <tr class="suborder0">

                        </tr>
                        <tr class="sub1order">

                        </tr>
                    </tbody>
                </table>
            </li>
        </ul>
    </li>
    <li>
        <ul>
            <li>
                <table class="treeleerling">
                    <tbody class="oder1">

                        <tr class="suborder0">

                        </tr>

                        <tr class="suborder1">

                        </tr>
                    </tbody>
                </table>
            </li>
        </ul>
    </li>
</ul>

还有 jQuery 代码

$(document).ready(function() {
    $("#left tbody").sortable({
            connectWith : '#left tbody',
            scroll : true,
            scrollSensitivity: 40,
    });
});

排序工作正常,但滚动不..我做错了什么还是什么?

更新: 我重构了代码以仅使用列表中的列表项,而不是表体中的表行。同样的问题仍然出现

【问题讨论】:

    标签: jquery user-interface scroll jquery-ui-sortable


    【解决方案1】:

    抱歉,由于我对 jQuery UI 库的了解有限,我无法检测到您的代码中的任何错误。顺便说一句,向下滚动到目标 div 的代码在哪里?

    这是解决此问题的另一种方法,请改用另一个 jQuery 插件:ScrollTo。

    使用很简单,加载插件后,使用代码如下:

    $.scrollTo('#your_target_element_id');
    

    我一直在我的项目中使用它,jQuery 1.4.2 似乎还可以

    希望这会有所帮助:)

    【讨论】:

    • 虽然我真的很喜欢 scrollTo 插件,但我不应该使用它.. UI 文档明确指出它应该滚动.. 为什么不滚动.. :(
    • 现在我在某处读到,可排序函数/插件依赖于选择器作为带有 listitems init 的列表。我设法将我的代码重构为仅使用列表和列表项,但我仍然无法工作..
    • 我刚刚测试了我之前的说法,它不是真的。问题中提供的标记在测试环境中工作。
    • 只是猜测,您使用的是哪个浏览器?你试过其他浏览器吗?去年我使用的是 jQuery UI,但是当我将浏览器升级到 firefox 3.6 时,小部件似乎不对...我想知道这是否是库中的一致性问题之一 - 那么你真的无能为力:(跨度>
    【解决方案2】:

    这可能不适用于您的情况,但我想我会发布我的解决方案来解决我遇到的 jQuery 可排序问题。我没有使用滚动 div。为了让滚动工作,我不得不从我的样式表中删除这一行:

    body {
      overflow-x: hidden; /* this line kept page scrolling from working */
    }
    

    我还将可排序的“包含”选项设置为“文档”(这可以防止项目被左右拖离页面,这也是我需要的)。

    【讨论】:

    • 正如 Craig 所建议的,在 body 元素上设置 CSS 溢出属性可以阻止 sortable 的滚动功能。尽管在我的情况下,造成损害的是溢出-y,而不是溢出-x。
    【解决方案3】:

    我只是偶然发现了这一点。对您来说可能为时已晚,但对于任何未来的访问者来说:

    遇到了这个问题,我不得不从我的 css 中删除以下行:

    #sortable{overflow: auto;} /*delete this */
    

    所以我想分配给可排序的任何类型的溢出都可能是问题。

    【讨论】:

    • 也为我工作。我不得不删除 Bootstrap 3 添加的 .table-responsive {overflow-x: auto} 来解决这个问题。
    • 也为我工作......不得不删除div#wrapper { overflow: auto; },现在它就像一个魅力:)
    猜你喜欢
    • 1970-01-01
    • 2012-05-15
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 2012-07-15
    • 2015-01-17
    相关资源
    最近更新 更多