2016-09-08 2 views
0

У меня есть динамический список li, тогда как иногда последний элемент редактируется, а иногда и нет.Как предотвратить падение на отмененном элементе

Я хочу, чтобы все элементы были перетащены/опущены вместо последнего элемента, когда он доступен для редактирования. (Примечание: если последний элемент не редактируется, его следует перетащить).

  • Я создал мини-пример, который не является динамическим, как мой, но я просто хочу получить эту идею, так что я буду использовать эту идею в моем коде.

Когда последний элемент редактируется, он изменяет идентификатор, чтобы я мог отменить перетаскивание по его идентификатору. Проблема заключается в том, что вопрос по-прежнему Droppable, я имею в виду, что в приведенном ниже примере, пункт 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.

+1

'$ ('. Sortable'). Sortable ({items:" li: not (# item_3_edit) ", cancel: '# item_3_edit'});'? – ryan

ответ

1

Попробуйте это

$(function() { 


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