javascript - 限制 jqueryui 可排序项目可以放置的区域

标签 javascript jquery jquery-ui

我有一个元素的“ul”,其中最后一个“li”是创建新元素。 由于 jqueryui sortable() ,ul 是可排序的,并且我已从 $('ul').sortable() 中排除了最后一个 'li' 元素,以便该元素不可拖动。但是,列表中的其他项目可以放在最后一个 li 元素下。我想阻止这种情况。有什么办法可以限制元素的掉落位置吗?

简单概念 HTML:

<ul>
    <li class="list-element">potato</li>
    <li class="list-element">tomato</li>
    <li class="list-element">banana</li>
    <li class="list-element">pistacchio</li>
    <li class="new-element">new product</li>
</ul>

和.js:

$('ul').sortable();
$("ul").disableSelection();
$('ul').sortable({ cancel: '.new-element' });

fiddle :http://jsfiddle.net/s4yjpoaL/

如您所见,所有项目都可以拖动到.new-element li下。有什么方法可以将可拖动性限制在最后一个 li 元素之前吗?

PS:我知道将最后一个元素放在 ul 之外会更容易,但这不是重点:P

最佳答案

通过将排序的 items 指定为其他 li 项目来实现此目的。

http://jsfiddle.net/s4yjpoaL/2/

$('ul').sortable({
    items: ".list-element",
    cancel: ".new-element",
});

除了使其不可排序之外,这还会禁用最后一个元素的拖放区域。

关于javascript - 限制 jqueryui 可排序项目可以放置的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480914/

相关文章:

javascript - 使用 PHP 和 JQuery 的响应式条件链接/按钮

javascript - 如果选择每日(复选框),请取消选择所有其他复选框

jquery对话框缩放显示效果

javascript - 如何在 v 4.3.1 中使用 FullCalendar resourcesTimeGridDay?

javascript - AngularJS - 单选按钮不更新模型

javascript - 如何编写单个 Jquery 函数来触发文档更改和就绪事件

javascript - 在 svg 中的文本上方绘制路径

javascript - jQuery UI "Loading..."错误处理

javascript - 添加值时推送数组,并显示到 Canvas - Javascript

javascript - 如何验证 Youtube 和 Vimeo URL