我正在使用 knockout.js 创建一个应用程序,将 knockout-sortable 用于拖放式可排序列表。有一个垂直列表,每个项目中都有一个水平列表。垂直列表表现得很好,但每当我尝试在水平列表中拖动一个项目时,它会将该列表中的其余项目相对于被拖动的项目向上或向下推。横向列表定义如下:
<div style="float: left" data-bind="sortable: { template: 'levelTmpl', data: $data.levels, beforeMove: $root.verifyMove, afterAdd: showLevel, beforeRemove: hideLevel, options: { containment: 'parent' } }"></div>
<script id="levelTmpl" type="text/html">
<div class="container item" style="display: inline-block">
<div style="float: right"><span class="ui-button" data-bind="click: $parent.removeLevel">[x]</span></div>
<input data-bind="value: name"/><br/>
<div style="clear: both"></div>
<textarea cols="35" rows="4" data-bind="value: description"> </textarea><br/>
<textarea cols="35" rows="4" data-bind="value: canned"> </textarea>
</div>
</script>
您可以在此处查看完整的应用程序:
链接不再存在
我已经尝试了我发现的所有建议,包括 http://bugs.jqueryui.com/ticket/6702 中的建议,到目前为止,没有任何效果。我真的很想让水平排序列表正常工作,所以如果有人有任何建议,我将不胜感激。
最佳答案
仅供引用https://github.com/rniemeyer/knockout-sortable只是 jquery ui 可排序的包装器。
为了不混淆列表,请在可排序元素上使用 connectClass。
关于javascript - Knockout-Sortable horizontal list 在拖动项目时垂直推送项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13316798/