限制jQuery可排序列表

时间:2009-12-19 14:24:58

标签: jquery limit jquery-ui-sortable max

我正在开展一个项目,我需要在房间里安排人员。我正在使用jQuery sortables来完成这项任务。唯一的“问题”是房间有最​​大容量。例如。部分房间最多可以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 个答案:

答案 0 :(得分:1)

首先,您要挂钩的事件不是onStart,而只是startaccording to the doc

然后,正如thenducks所说,我不认为你计算元素的方式是正确的。您可以使用sortable进行计数:

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

其中items是列表中元素类型的选择器(可能是divslisCSS类等。)。

答案 1 :(得分:0)

在我看来,你只是缺少一件,在Firebug中,尝试:

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

您很可能看不到多个项目,而是一组元素。那么,你想要的是:

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

答案 2 :(得分:0)

通过创建一个javascript函数轻松解决它,该函数检查特定DOM元素中LI元素的数量。