jQuery 拖放 - 只允许列表中的一项

2024-03-08

我使用这个例子jQuery UI 可排序 http://jqueryui.com/demos/sortable/#empty-lists

我在拖放方面遇到问题。
表号 3 -sortable3应该只能收到一件物品。

这是我的 HTML

<div class="demo">

<ul id="sortable1" class='droptrue'>
    <li class="ui-state-default">Can be dropped..</li>
    <li class="ui-state-default">..on an empty list</li>
    <li class="ui-state-default">Item 3</li>
    <li class="ui-state-default">Item 4</li>
    <li class="ui-state-default">Item 5</li>
</ul>

<ul id="sortable2" class='dropfalse'>
    <li class="ui-state-highlight">Cannot be dropped..</li>
    <li class="ui-state-highlight">..on an empty list</li>
    <li class="ui-state-highlight">Item 3</li>
    <li class="ui-state-highlight">Item 4</li>
    <li class="ui-state-highlight">Item 5</li>
</ul>

<ul id="sortable3" class='droptrue'>
</ul>

My CSS

#sortable1, #sortable2, #sortable3{
    list-style-type: none; 
    margin: 0; 
    padding: 0; 
    float: left; 
    margin-right: 10px; 
    background: #eee; 
    padding: 5px; 
    width: 143px;
}

#sortable1 li, #sortable2 li, #sortable3 li{
    margin: 5px; 
    padding: 5px; 
    font-size: 1.2em; 
    width: 120px; 
}

我的脚本

$(function() {
    $("ul.droptrue").sortable({
        connectWith: "ul"
    });

    $("ul.dropfalse").sortable({
        connectWith: "ul",
        dropOnEmpty: false
    });

    $("#sortable1, #sortable2, #sortable3").disableSelection();
});​

为了防止任何额外的物品掉入sortable3,如果超过最大数量则取消投放。

下面的代码是您当前的代码,我只添加了最后一个方法,该方法将接收到的事件附加到第三个可排序对象。

$(function() {
    $("ul.droptrue").sortable({
        connectWith: "ul",
    });

    $("ul.dropfalse").sortable({
        connectWith: "ul",
        dropOnEmpty: false
    });

    $("#sortable1, #sortable2, #sortable3").disableSelection();

    $("#sortable3").on("sortreceive", function(event, ui) {
        var $list = $(this);

        if ($list.children().length > 1) {
            $(ui.sender).sortable('cancel');
        }
    });
});​

DEMO http://jsfiddle.net/FranWahl/EGcY8/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 拖放 - 只允许列表中的一项 的相关文章

  • dataTables fnFilter 列 on img 文件名

    我正在尝试根据标签的 src 属性中的图像文件名来过滤列 我的行看起来像这样 tr class unread odd td class td tr
  • 显示 div 内的用户名列表

    我是 jQuery 新手 在我的项目中 我创建了一个类User其中代码如下所示 static ConcurrentDictionary
  • Disqus:使用 jQuery 成功后更改标题

    Disqus 根据请求自动放置定义的标题 例如 添加新评论 我尝试在ready 上使用jquery更改它的值 dsq new post h3 text Paticipa con tu cuenta favorita 没有成功 我如何知道 d
  • IE 中的 jQuery 鼠标闪烁

    当我在 IE 中执行 fadeIn fadeOut slideUp slideDown toggle 等 jQuery 函数时 鼠标总是闪烁 沙漏在光标旁边的视图中快速闪烁 我尝试了不同的方法来在动画进行时完全隐藏鼠标 但没有效果 而且在大
  • jquery的empty()方法会清除通过非jquery方式创建的事件监听器吗

    我有一个包含很多子元素的元素 我想清除该元素的内容并用新的结构替换它 子元素分配有各种事件侦听器 并且并非所有这些侦听器都是通过 jquery 绑定方法创建的 如果我使用 jquery 的空方法来清除元素 它会删除所有事件侦听器还是只会清除
  • iframe src 允许所有来源,但仍然收到跨来源错误

    我管理 siteA 的前端 并在页面上有一个 iframe 其中 src 指向 siteB 的资源 这是其他供应商和客户端使用的可嵌入资源 其视频嵌入 因此 siteB 的响应标头设置为 Access Control Allow Origi
  • 有没有办法同步ajax调用

    这可能是一个微不足道的问题 但我想知道是否有办法以某种方式知道最后一个 ajax 调用何时完成 假设我有 3 个异步 ajax 调用 ajax type GET datatype json url
  • javascript/jquery 从选择中删除或删除选项

    在某些情况下 我需要从选择中删除选项 基本上 if mystatement true remove item with id option1 from select of id select1 有人知道我可以实现这一目标的代码吗 非常感谢
  • Jquery 和 Django 多个复选框

    我是 jquery 的初学者 所以请耐心等待 我有一个 jquery 函数 允许我选择多个复选框并创建一个字符串 如下所示 function getSelectedVals var tmp input name checks each fu
  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • 如何组合多个jquery函数

    如果你查看下面的 jquery 代码 你会看到著名的 文档 ready 函数 这将启动脚本 我在网上几乎所有 jquery 代码示例中都看到了这一点 我想知道 如果我在一个文件中运行 5 个不同的代码函数 我是否需要使用 文档 ready
  • jquery悬停一次?

    jquery 使悬停函数执行一次然后停止的方法是什么 one 不起作用 button color 2 hover function dosmth 谢谢 Hover http api jquery com hover 绑定处理程序鼠标输入 h
  • 使用 jQuery inputmask 插件范围 0-100

    如何创建 0 到 100 范围内的掩码 document ready function masked inputmask 您可以使用jquery inputmask regex extensions js为了那个原因 你可以找到带有所有扩展
  • 如何使用 jQuery 选择第一个块级父级?

    考虑以下标记 div h1 span span lorem ipsum span span h1 div 如何找到块级别的 span 3 的第一个父级 即具有display block 使用 jQuery 在这种情况下 那就是h1 1 3
  • jquery 上下文菜单插件 - 右键单击​​事件类型在哪里?

    我正在研究下面插件的代码 想知道它在何时何地与 右键单击 事件相关联 它所做的只是 插件参考链接 http www javascripttoolbox com lib contextmenu http www javascripttoolb
  • Twitter Typeahead 上使用 Bootstrap 3 的 CSS 问题

    随着 Bootstrap 3 的发布 Typeahead 已被删除 取而代之的是 https github com twitter typeahead js https github com twitter typeahead js 我已经
  • 如何显示接下来的三个图像单击加载更多按钮

    我需要一个加载更多按钮来显示图像 页面加载时 我显示 3 个图像 单击 加载更多 按钮后 接下来的 3 个图像将显示在屏幕上 我尝试了下面的代码 但它不起作用 你能帮我解决这个问题吗 function item slice 0 2 show
  • 触发 jQuery UI 滑块事件

    如何触发更改事件jQuery UI 滑块 http docs jquery com UI Slider 我以为会是 slider trigger slidechange 但这没有任何作用 完整的示例脚本如下
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 如何从 html 字符串向 jQuery DataTable 添加多行

    我有一个 jQuery DataTable 我想向其中添加 html tr 行 这些行以 html 字符串的形式出现 我可以使用标准 jQuery 将它们添加到表中 但这意味着它们绕过 DataTable 对象 并在重新排序表时丢失 要使用

随机推荐