Sam*_*ghs 9 jquery user-interface scroll jquery-ui-sortable
我在使用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>
Run Code Online (Sandbox Code Playgroud)
和jQuery代码
$(document).ready(function() {
$("#left tbody").sortable({
connectWith : '#left tbody',
scroll : true,
scrollSensitivity: 40,
});
});
Run Code Online (Sandbox Code Playgroud)
排序工作正常,但滚动不..我做错了什么或什么?
更新:我重构了代码,只使用列表中的列表项而不是表体中的表行.同样的问题仍然存在
小智 13
这可能不适用于您的情况,但我想我会将我的解决方案发布到我正在使用的jQuery可排序的scolling问题.我没有使用滚动div.为了让滚动工作,我不得不从样式表中删除这一行:
body {
overflow-x: hidden; /* this line kept page scrolling from working */
}
Run Code Online (Sandbox Code Playgroud)
我还将'sortment'选项设置为'document'(这使得项目不会被左/右拖离页面,这也是我需要的).
我只是偶然发现了这一点。对您来说可能为时已晚,但对于任何未来的访客:
有这个问题,我不得不从我的 css 中删除以下行:
#sortable{overflow: auto;} /*delete this */
Run Code Online (Sandbox Code Playgroud)
所以我猜分配给 sortable 的任何类型的溢出都可能是问题所在。
抱歉,由于我对 jQuery UI 库的了解有限,我无法检测到您的代码中的任何错误。顺便说一句,向下滚动到目标 div 的代码在哪里?
这是解决这个问题的另一种方法,使用另一个 jQuery 插件:ScrollTo。
使用它很简单,加载插件后,使用代码如下:
$.scrollTo('#your_target_element_id');
Run Code Online (Sandbox Code Playgroud)
我一直在我的项目中使用它,并且 jQuery 1.4.2 似乎还可以
希望这可以帮助 :)