javascript - 如何防止已取消的商品掉落

标签 javascript jquery html jquery-ui draggable

我有一个动态的 li 列表,有时最后一个元素是可编辑的,有时则不可编辑。

我希望在可编辑时拖/放所有项目而不是最后一个元素。 (注意:如果最后一个元素不可编辑,则应将其拖动)。

  • 我创建了一个缩小的示例,它不像我的那样是动态的,但我只是想了解这个想法,以便我在我的代码中使用这个想法。

当最后一个元素可编辑时,它会更改 id,以便我可以通过其 id 取消拖动。 问题是该项目仍然是可放置的,我的意思是在下面的示例中,项目 2 可以拖动到可编辑的项目 3。

<ul class="sortable">
    <li id="item_1">Item 1</li>
    <li id="item_2">Item 2</li>
    <li id="item_3_edit">Item 3 (Edit State)</p> 
</ul>

Javascript:

$(function() {
    $( ".sortable" ).sortable();
    $( ".sortable" ).disableSelection();
    $('.sortable').sortable({ cancel: '#item_3_edit' });
});

Fiddle

如何修复它,以便项目 2 无法更改可编辑的项目 3。

最佳答案

试试这个

$(function() {


     $(".sortable").sortable({
      items: "li:not(#item_3_edit)"
    });
     $( ".sortable" ).disableSelection();
    });

关于javascript - 如何防止已取消的商品掉落,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401099/

相关文章:

jquery - 使用 jquery 和 typescript

javascript - 获取一个对象数组并将其放入条形图中

javascript - 如何按比例调整图像大小并保持纵横比?

javascript - 比较两个选择元素的值

javascript - JS onClick 返回 false 和 jQuery 全局 .click

javascript - 单击按钮时尝试将 setinterval 暂停 10 秒

javascript - 如何将此日期从 "dd/mm/yyyy"拆分为 "yyyy/mm/dd"?

javascript - 平滑网格折叠时 resizeCanvas 不起作用

javascript - 为 :checked 之前的所有元素设置样式

html - CSS 兄弟选择器没有动画