Сортируемый список Limit jQuery - PullRequest
       6

Сортируемый список Limit jQuery

0 голосов
/ 19 декабря 2009

Я работаю над проектом, в котором мне нужно планировать людей в комнатах. Я использую сортировку jQuery для достижения этой цели. Единственная «проблема» в том, что для комнаты есть максимальная вместимость. Например. в некоторых номерах может быть макс. 3 человека, другие 4 и некоторые, может быть, только 1. Так что после просмотра документации jQuery я пришел к этому ... только, он ничего не делает. Часть между onStart: function(){} динамически создается PHP.

У вас, ребята, есть опыт в настройке макс. элементов в сортируемом списке и проверить это?

$(function() {
    $(".sortable, .connectable").sortable({
        connectWith: '.sortable, .connectable',
        helper: 'clone',
        cursor: 'move',
        onStart: function()
        {

            if($(".room-1-1").sortable('items') == 2)
            {
                alert("Maximum reached..");
            }


            if($(".room-1-2").sortable('items') == 2)
            {
                alert("Maximum reached..");
            }

                        }
    }).disableSelection();
});

Ответы [ 3 ]

1 голос
/ 19 декабря 2009

Во-первых, событие, которое вы хотите подключить, это не onStart, а просто start, в соответствии с документом .

Тогда, как сказали уток, я не думаю, что вы правильно считаете элементы. Вы можете сделать это без использования сортировки для подсчета:

if($(".room-1-1 items").length == 2)
{
    alert("Maximum reached..");
}

где items - селектор типов элементов в ваших списках (может быть divs, lis, класс CSS и т. Д.).

0 голосов
/ 26 января 2010

Легко решается, создавая функцию javascript, которая проверяет количество элементов LI в указанном элементе DOM.

0 голосов
/ 19 декабря 2009

Мне кажется, вам просто не хватает одной части, в Firebug попробуйте:

$(".room-1-1").sortable('items')

Скорее всего, вы увидите не ряд предметов, а скорее набор элементов. Итак, что вы хотите:

if( $(".room-1-1").sortable('items').length == 2 ) { ... }
...