2012-08-02 3 views
2

연결된 정렬 가능한 목록이 2 개 있습니다. 사용자가 목록을 비워 둘 수 없도록하고 싶습니다. 목록에 항상 하나 이상의 항목이 있어야합니다.적어도 하나의 항목을 정렬 가능한 JQuery UI 목록에 두십시오.

$("#unused, #used").sortable({ 
     connectWith: ".connectedSortable", 
     placeholder: "placeholder", 
     items: "li:not(:only-child)" 
     }).disableSelection(); 

사람이 작업을 수행하는 방법을 알고 :

나는의 라인 긴 뭔가를하려고했다?

+0

어떤 오류가 발생합니까? – Kiruse

+0

유감스럽게도 "li (: only-child)"오류 (: only-child)는 throw되지 않습니다. – JonWells

+0

물론, 'li : only-child'이어야합니다. 그러나이 스 니펫은 정렬 할 때 이미 목록에있는 유일한 항목 인 경우 마지막으로 남은 항목 만 제거합니다. 내 jUI 주위에 내 길을 잘 모르겠지만 거기에 어떤 콜백 매개 변수가 있습니까? 예를 들어 현재 정렬중인 항목 또는 제거하려는 항목이 마지막 항목인지 여부를 점진적으로 확인해야합니다. – Kiruse

답변

3

사용을 대신 itemscancel 옵션을 시도 $(this + 'li').not(':only-child')

시도 항목을 정렬 가능한 목록에 남겨 둡니다.

작업 예제 here을 참조하십시오.

1

나는 :notnot()을 사용하고 있지만 확실히 말할 수는 없다고 생각합니다. 전체 셀렉터는 여러 가지 필요에 맞게 맵핑을 시도 할 때 가끔씩 고통이 될 수 있습니다. 때 하나의 정렬

$("#unused, #used").sortable({ 
    connectWith: ".connectedSortable", 
    placeholder: "placeholder", 
    cancel: "li:only-child" 
}); 

이 옵션을 방지 할 수 있습니다 :

는 문제가 해결되지 않을 경우 다음

$(this + 'li:not:only-child')

관련 문제