javascript - Jquery sortable - 限制 droppables

标签 javascript jquery jquery-ui jquery-ui-sortable

我将简化我的解释,以便您了解我正在做的事情。我有两个 div,并且设置了 portlet,如图 here 所示。 ,但是我动态注入(inject)我的 portlet,没有什么大问题。

<div id="mainallapplicant" class="myrow"></div>
<div id="contingent_right" class="myrow"></div>  

这是 JavaScript

$( ".myrow" ).sortable({
    connectWith: ".myrow",
    revert: true,
    beforeStop: function( event, ui ) {}
});

我试图最多只允许一个 droppable 进入 mainallapplicant。如果已经有一个项目,我将显示一个确认对话框,并根据答案,取消删除或移出现有项目并将其替换为新项目。我尝试了以下方法,但一无所获。

$( ".myrow" ).sortable({
    connectWith: ".myrow",
    revert: true,
    start: function(event, ui) {
        if ($(this).prev().find(".portlet").length == 1) {
            ui.sender.draggable("cancel");
        }
    },
    stop: function(event, ui) {
        if ($(this).prev().find(".portlet").length == 1) {
            ui.item.remove();
            // Show an error...
        }
    }
});

最佳答案

您可以使用 start 获取 portlet 元素的当前计数,然后使用 stop 进行检查 另请注意,我向每个 div 添加了类名称,以允许只有一个 div 最多有 1 个 portlet

$(document).ready(function () {
    $.count = 0;
    $(".myrow").sortable({
        connectWith: ".myrow",
        revert: true,
        start: function () {
            $.count = $(".myrow").has(".portlet").length;
            console.log("Start " + $.count);
        },
        stop: function (event, ui) {
            if ($(ui.item).parent(".myrow").hasClass("left")) {
                if ($.count == 2) {
                    $(".myrow").sortable("cancel");
                }
            }
        }
    });
});

演示:http://jsfiddle.net/Ue4dq/

关于javascript - Jquery sortable - 限制 droppables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161907/

相关文章:

javascript - JQuery UI 自动完成选择返回未定义

javascript - $.each 抛出错误 : Cannot use 'in' operator to search for '37' in

javascript - Bootstrap Collapse show.bs.collapse 第二次不工作

javascript - Highcharts 在饼图标签上随机产生奇怪的笔画

javascript - 将 JavaScript 函数应用于元素的父级

javascript - 将行添加到表并发送到服务器,通过 jquery 将表发布到 php

jquery - 如何创建与 m.facebook.com 风格相似的网页

javascript - Prettyphoto - 如何将唯一参数传递给回调函数

javascript - 为什么裸数组是有效的 Javascript 语法,而不是裸对象?

javascript - JS - jQuery 可拖动可调整大小的容器中的多个 div 互相插入