jquery ui sortable disable for one li item

有可能只为一个列表项禁用jquery ui sortable吗? 这是代码示例:

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

例如,当我点击项目时,我将禁用可排序。 请帮忙。

这是javascript代码:

 $(document).ready(function(){ $('.sortable li').click(function(){ // Disable sortable for this item............. }); }); 

当然,尝试这样的事情:

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

通过使用items选项,您可以指定可以和不可以排序的项目。

jsFiddle示例

您可以明确排除项目(除了不包括它们):

 $( ".sortable" ).sortable({ cancel: ".disable-sort-item" }); 

我知道,这个问题已经过时了。 但我告诉你正确的答案。 如何通过单击动态地禁用和启用项目。 因为我在2016年有同样的问题:D

首先。 您需要做的就是将项目设置为可开始时将被禁用的可排序项目。 添加参数从列表中删除禁用的项目(在第一次初始化时需要):

 var sortable = $("#sortable-sections"); sortable.sortable({ items: 'li:not(.ui-state-disabled)', helper: 'clone', }); sortable.disableSelection(); 

(示例中使用的bootstrap)

然后只需添加事件监听器,我使用onClick,这里的示例如下:

 sortable.find('li').click(function () { $(this).toggleClass('ui-state-disabled'); $(this).hasClass('ui-state-disabled') ? $(this).removeData('sortableItem') : false; }); 

Sortable-item只有在拥有调用sortableItem的数据时才可以排序,因此它会动态禁用,希望它可以帮助某人。

干杯!