javascript - jQuery sortables - 连接问题

标签 javascript jquery html css sortables

我有两个关于 jsFiddle 的例子:

示例 1

在第一个中,我可以移动列表元素,甚至可以从子元素移动到根元素。然而,要让它“啪”起来并不是一件容易的事。

示例 2

在第二个示例中,我 float 了列表元素。这次我无法让它们“捕捉”到子元素。

问题

  • 有没有什么好方法可以让它更容易捕捉?
  • 如何用 float 解决?

最佳答案

到目前为止,jQuery sortable 中有一个未记录的选项,用于定义检查公差的元素:toleranceElement .如果未设置,则检查整个元素的放置(包括嵌套列表),但如果设置,则仅考虑与选择器匹配的子元素。

这意味着您必须稍微更改 HTML 标记以将列表项的主要内容(在您的案例中为元素文本)包装在一个元素中,并使用它来检查排序定位。这将忽略嵌套的 <ul> s,有效地停止抖动,否则会非常严重。

HTML:

<div id="example5"> 
    <ul> 
        <li ><div>Item 1</div>
            <ul> 
                <li ><div>Item 1 1</div><ul></ul></li> 
                <li ><div>Item 1 2</div><ul></ul></li> 
                <li ><div>Item 1 3</div><ul></ul></li> 
            </ul> 
        </li> 
        <li ><div>Item 2</div><ul></ul></li> 
        <li ><div>Item 3</div><ul></ul></li> 
        <li ><div>Item 4</div><ul></ul></li> 
    </ul> 
</div> 

Javascript:

$("#example5 ul").sortable({
    connectWith: "#example5 ul",
    placeholder: "ui-state-highlight",
    toleranceElement: 'div'
});

尝试修改后的演示 herehere .

您可能还想玩一下 opacity , cursorAttolerance .看看 documentation .

请注意,这不是一个完美的解决方案,如果您对结果不满意,请查看使用插件。 Manuele J Sarfatti 的 nestedSortable插件看起来可能对您有用:http://mjsarfatti.com/sandbox/nestedSortable/

关于javascript - jQuery sortables - 连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115452/

相关文章:

html - 1px 的 border-radius 是否比 10px 的 border-radius 性能更好?

javascript - Angular 4奇怪的错误: query doesn't end when -not- showing a message toast

javascript - 如何解决 null ts 类型检查问题?

javascript - 是否可以在某个地方调用自调用函数方法?

javascript - 使用 ng-click 和 angularjs 从页面调用指令的函数

javascript - 将 "click outside of menu to close"jQuery/Javascript 添加到具有 .toggle() 的菜单下拉菜单

Javascript - 当选择 <option> 时,执行一个操作

javascript - fullcalendar:如何将 View 更改为 'listMonth',然后转到默认日期?

javascript - 是否仍然需要限制 $(window).scroll()?

javascript - jQuery动态添加的文字不会加载网页字体样式