Search code examples
jquery-uijquery-ui-sortable

jQuery UI Sortable: How do I prevent a specific list item from being moved?


I have this list:

<ul>
    <li class="line"><a href="#" class="drag">header (do not sort)</a></li>
    <li class="line"><a href="#" class="drag">line one</a></li>
    <li class="line"><a href="#" class="drag">line two</a></li>
</ul>

How can I prevent the first li from being moved?


Solution

  • You can specify which items within the Sortable are actually sortable. This should do the trick—change the HTML as follows:

    <ul>
        <li class="line" id="header"><a href="#" class="drag">header (do not sort)</a></li>
        <li class="line"><a href="#" class="drag">line one</a></li>
        <li class="line"><a href="#" class="drag">line two</a></li>
    </ul>
    

    Then when you set up the sortable:

    $('ul').sortable({ items: '> li[id!=header]' });