从 Jquery UI Sortable 中删除项目

2024-05-01

我试图找出从 JQuery UI 可排序列表中删除项目的正确方法。我创建了一个 JSfiddle 来说明我的问题。

基本上,我有几个围绕 JQuery UI 可排序小部件的回调,并且我希望在从小部件中删除元素后立即执行这些回调。这样做的正确方法是什么?因为“$.remove”和“$.detach”似乎都有效。

编辑1:我不是在寻找解决我的问题的修补程序,而是更多地解释 JQuery UI 可排序列表如何工作,而下面的答案清楚地解决了问题。我认为这不是一种干净的做法。我认为 JQuery UI Sortable 应该意识到,当您从列表中删除两个元素之间的元素时,您应该需要重新排序

如果您注意到下面的内容,当我在元素上调用删除时,该函数不会被执行。

$(document).ready(function(){
    $('ul').sortable({
        stop: function(event, ui) {
            updatePosition();
        }
    });

    $('.remove').on('click', function(e){
        $(".delete").remove();
    });
});

function updatePosition(){
    $('ul li').each(function(i){
        $(this).html(i + 1);
    });
}

http://jsfiddle.net/72RTz/2/ http://jsfiddle.net/72RTz/2/


在您的删除事件处理程序中,只需包含对updatePosition after $(".delete").remove();这不会涵盖任何时候从列表中删除元素的情况:如果这确实是您的意图,那么您将不得不使用类似 @pmich35 的内容answer https://stackoverflow.com/a/19553606/1727159(虽然这确实意味着updatePosition每个都会被调用$.remove从那时起,调用,无论是否在列表中的任何元素 - 有点矫枉过正)

Your 更新了小提琴 http://jsfiddle.net/72RTz/6/.

EDIT:目前没有“删除”事件$.sortable适合您的目的 - 那里的删除事件仅涵盖用户将列表项从列表拖动到另一个可排序列表的特定情况。Sortable实际上并不总是跟踪您的列表项 - 它不关心您是否以编程方式添加或删除项目 -它仅促进用户拖动事件。它实际上并不执行任何“排序”,所有出现的排序都只是 jQuery 拉取 DOM 元素以形成其对象的方式(如果您将列表项缓存在 jQuery 对象中,然后对这些项进行拖动排序,缓存的列表项的顺序将与以前相同)。由于“排序”只是函数的幻觉,因此它“无法”主动跟踪追加/删除。

还有另一种可能的解决方法:附加updatePosition to the ul元素本身:

$( 'ul' ).on( 'remove', 'li', updatePosition );

这也实现了您的目标,但仍然不是您想要的“干净”方式。一般元素上的“删除”事件是在 jQuery UI 1.10.3 中添加的(因此 jsfiddle 不会覆盖它,它们只会上升到 1.9.2),并且会调用updatePosition每当任何电流或未来列表项被删除(从 DOM 中 - 拖动的删除仍然被捕获$.sortable的删除事件)。

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

从 Jquery UI Sortable 中删除项目 的相关文章

  • 如何向 jQuery Tokeninput 添加占位符?

    如何将占位符添加到 jQuery Tokeninput 字段 一个正常的placeholder属性在这里不起作用 对于这样的输入
  • 为什么 jQuery 点击事件会多次触发

    我这里有这个示例代码http jsfiddle net DBBUL 10 http jsfiddle net DBBUL 10 document ready function creategene click function confir
  • jQuery如何让Enter(Return)通过输入文本字段充当Tab键但最终触发提交按钮

    我已经屏蔽了 Enter 返回 键 实际上 将其转换为 Tab 键 因此 当在输入文本字段内按下时 它充当 Tab 键 这很好 但我需要它在最后一个字段中按下时触发提交按钮 下面是 Enter 键突变的代码 input keydown fu
  • 如何在jQuery datetimepicker中获取UTC时间

    我正在使用尝试这个jQuery 日期时间选择器 http trentrichardson com examples timepicker 获取日期和时间数据 我能够得到大部分内容 格式 显示等 但是 我无法获取 UTC 格式的日期和时间 我
  • jquery:当我在文档上附加一层时,如何重置文档滚动条?

    当我在文档上附加图层时 如何重置文档滚动条 例如 它就像 Facebook 页面 当您有一个很长的文档时 您需要向下滚动才能查看较旧的图像 帖子 当你点击照片时 滚动条发生了变化 从顶部开始 但文档页面根本不跳转 当关闭照片查看器图层时 滚
  • 如何使 jQuery 向上动画

    我有一些 jquery 运行得相当好 但是当我将鼠标悬停在有问题的元素上时 底部向下扩展 这并不意外 但不是所需的效果 我希望元素的底部保持静止 而元素的顶部向上扩展 如果您想查看我目前拥有的内容 您可以导航至http demo ivann
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • Jquery:选择菜单以显示和隐藏某些div元素

    我正在创建一个选择菜单 根据所选选项显示和隐藏某些 div 像这样的东西
  • 有没有非常轻的灯箱? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将 gettext 字典中的术语输入 JavaScript?

    我正在尝试使用 php 和 javascript jquery 开发一个支持多种语言的网站 我正在尝试获得以下东西 高效 我需要尽可能减少这个操作的后端处理 可扩展 向翻译添加新字符串必须简单实用 问题是 我的 javascript 代码正
  • 在 MVC 4 中的另一个表单中验证 JQuery UI 模式表单

    我在 MVC 4 中有一个表单 其中包含多个字段 根据组合的值 我需要打开一个模式对话框表单并加载到这 3 个附加字段中 这些字段将影响我正在创建的同一实体 在主窗体中进行编辑 对于这个模式对话框 我使用的是 jQuery UI 中的对话框
  • Jquery:是否有某种方法可以使 val() 返回空字符串而不是空列表的“未定义”?

    使用 Jquery 是否有某种方法可以使 val 在针对空元素列表调用时返回空字符串而不是 未定义 例如 我有这样的代码 var x my textbox id not watermark val 我的想法是 我想获取文本框的值 但如果它当
  • 使用 jQuery 提交一个又一个表单?

    如何设置自动队列系统来依次运行多个提交 我不希望他们立即提交 否则可能会破坏我的后端 PHP 脚本 这是一个简单的例子 假设每个表单都可以独立提交 并且主提交将串行运行所有表单
  • 使用 jquery 删除输入占位符

    有谁知道如何使用 jquery 删除输入占位符 我想做的是如果其中之一inputbox得到一个值 所有输入框占位符都将被删除 有人知道该怎么做吗
  • 使用 jQuery 在页面之间滑动

    我有一个 4 页的网站 我想用幻灯片效果在 4 页之间进行转换 我不想使用 ID 来执行此操作 我想按按钮或链接滑动到下一页 我知道这可以使用 jQuery 来完成 并且我见过这样做的网站 请帮忙 预先感谢所有建议 批评和意见 查看本教程和
  • json_encode 返回 200 且未定义

    我想要一个代码来添加或删除数据库书签 代码已准备就绪 它可以正确地从数据库书签中添加和删除书签 但是当我调用该函数时 它会不断返回json error反而json success即使代码有效 我想知道代码 我从其他地方获得并改编的 有什么问
  • JQuery UI Draggable - 如何知道元素是否可拖动初始化?

    我的逻辑是 if this draginited a drag disabled element shouldn t get pass here as it is inited this draggable 我搜索了很多 找不到实现这个逻辑
  • 如果验证失败,如何在 ASP.NET MVC 中阻止 jquery ajax 提交

    我在用ASP NET 5 MVC RC1 我的 ASP NET MVC 使用的 jquery 验证插件是默认 ASP NET 5 模板项目使用的标准 jquery validate js jQuery Validation Plugin v
  • 如何防止 CSS 或 jQuery 中单词和标点符号之间的换行

    我在一个段落中有一些文字 我的问题是 当标点符号位于单词末尾时 有时可以换行到下一行 像这样 This is the text This is a new line 我可以用 CSS 或 jQuery 解决这个问题吗 如果您不在单词和标点符
  • jRails 是 Rails + jQuery 必须的吗?

    我是rails新手 使用rails 2 3 10 并且想使用jquery 特别是jquery ui 该项目是一个全新的项目 我计划使用 jquery ui 中的一些小部件 如 datapicker 和 selectable 等 我听说可以安

随机推荐