限制 jQuery 可排序列表

发布于 2024-08-15 05:19:50 字数 779 浏览 3 评论 0原文

我正在开展一个项目,需要将人员安排在房间内。我正在使用 jQuery 可排序来完成此任务。唯一的“问题”是房间有最​​大容量限制。例如,某些房间最多可容纳 20 人。 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();
});

I'm working on a project where I need to schedule persons in rooms. I'm using jQuery sortables to achieve this task. The only 'problem' is that there is a maximum capacity for a room. E.g. some rooms can have max. 3 persons, others 4 and some maybe only 1. So after browsing the jQuery documentation I came up with this.. only, it's not doing anything. The part between onStart: function(){} is created dynamicly by PHP.

Do you guys have some experience in setting up a max no. of items in a sortable list and check for that?

$(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();
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

聊慰 2024-08-22 05:19:51

首先,您要挂钩的事件不是 onStart,而只是 start根据文档

那么,正如thenducks所说,我认为你计算元素的方式不对。您可以在不使用 sortable 进行计数的情况下执行此操作:

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

其中 items 是列表中元素类型的选择器(可能是 divslis ,一个 CSS 类,等等)。

First, the event you want to hook on is not onStart, but simply start, according to the doc.

Then, as thenducks said, I don't think your way of counting the elements is right. You can do it whithout using sortable for counting :

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

where items is the selector on the types of elements in your lists (may be divs, lis, a CSS class, etc..).

凉月流沐 2024-08-22 05:19:51

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

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

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

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

It seems to me you are just missing one piece, in Firebug, try:

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

You will most likely not see a number of items, but rather a collection of elements. So then, what you want is:

if( $(".room-1-1").sortable('items').length == 2 ) { ... }
脱离于你 2024-08-22 05:19:51

通过创建一个 JavaScript 函数来检查指定 DOM 元素中 LI 元素的数量,可以轻松解决这个问题。

Easily solved it by craeting a javascript function which checks the number of LI elements in a specified DOM element.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文