Search code examples
jqueryjquery-uilimitjquery-ui-sortable

jQuery Sortable - Limit number of items in list


I have a schedule table I'm using jQuery Sortable for editing.

Each day is a UL, and each event is an LI.

My jQuery is:

    $("#colSun, #colMon, #colTue, #colWed, #colThu").sortable({
         connectWith: '.timePieces',
         items: 'li:not(.lith)'
    }).disableSelection();

To make all LI's sortable except those with class "lith" (day names). User can drag an event from day to day, or add new events by clicking a button, which appends a new draggable event (LI) to the fist UL (Sunday).

I want to make each day accept only up to 10 events. How do I do this?


Solution

  • $(function() {
        $(".sortables").sortable({
            connectWith: '.connectedSortable',
            //receive: This event is triggered when a
            //connected sortable list has received an item from another list.
            receive: function(event, ui) {
                // so if > 10
                if ($(this).children().length > 10) {
                    //ui.sender: will cancel the change.
                    //Useful in the 'receive' callback.
                    $(ui.sender).sortable('cancel');
                }
            }
        }).disableSelection();
    });