动态启用/禁用 jquery 可排序项目

2023-12-22

我的表格行可以根据是否选中某些单选按钮进行排序。可排序对象初始化于document.ready如下:

$(document).ready(function() {
    // Return a helper with preserved width of cells
    // handy code I got from http://lanitdev.wordpress.com/2009/07/23/make-table-rows-sortable-using-jquery-ui-sortable/
    var fixHelper = function(e, ui) {
        ui.children().each(function() {
            $(this).width($(this).width());
        });
        return ui;
    };
    // #opts = table id; tr.ui-state-disabled class = rows not sortable
    $("#opts tbody").sortable({
        items: 'tr:not(.ui-state-disabled)',
        cursor: 'crosshair',
        helper: fixHelper
    }).disableSelection();
});

我将以下功能附加到单选按钮(ids 前缀为“active_”)onchange添加或删除ui-state-disabled表行中的类属性(动态 ID 前缀为“opt_”):

    var toggleDrag = function(i){
    if ($('#active_'+i+'-0').is(':checked')) {
        $('#opt_'+i).addClass('ui-state-disabled');
    }
    if ($('#active_'+i+'-1').is(':checked')) {
        $('#opt_'+i).removeClass();
    }
    $("#opts tbody").sortable("option", "items", "tr:not(.ui-state-disabled)");
    //$("#opts tbody").sortable("refresh");
    //alert($('#opt_'+i).attr('class')); - alert indicates that the class attribute is being changed
    //$("#opts tbody").sortable("option", "cursor", "auto"); - this works!
}

如果我选择一个单选按钮,该按钮应该使以前不可排序的行可排序,它就会起作用,并且我可以拖放该行。问题是,如果我选择一个单选按钮来创建以前可排序、不可排序的行,我仍然可以拖放它。二传手.sortable("option", "items", "tr:not..etc")如果先前可排序,则不会出现“取消注册”行。我也尝试过 .sortable("refresh") 但没有运气。我已经检查过类属性是否正在通过警报进行更改,确实如此。

任何对此的帮助将不胜感激。


我遇到了同样的问题,即items选项似乎没有删除之前启用的项目。

The cancel然而,选项确实如此。请注意,禁用的项目将四处移动,为可排序的项目腾出空间(该位置仍可用作放置目标),但拖动禁用的项目本身将不起作用。用一个disabled类还可以根据项目是否可排序轻松更改样式(请参阅jsfiddle http://jsfiddle.net/Sxg8D/122/).

这里的代码部分基于 Bah Bah the Lamb 的答案,但已被大大整理和简化。

html:

<ul id="sorted-list">
   <li>
       <p><input type="checkbox" checked="true" /> Item 1</p>
    </li>
   <li>
       <p class="disabled"><input type="checkbox" /> Item 2</p>
   </li>
   <li>
       <p><input type="checkbox" checked="true" /> Item 3</p>
   </li>
</ul>

jQuery:

$("#sorted-list").sortable({
    cancel:".disabled"
});

// add or remove the 'disabled' class based on the value of the checkbox
$("#sorted-list input").click(function() {
    if (this.checked) {
        $(this.parentElement).removeClass("disabled");
    } else { 
        $(this.parentElement).addClass("disabled");
    }
});

The CSS:

li {
  border: 1px solid #aaa;
  background-color: #eee;
  color:#555;
  padding: 5px;
}

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

动态启用/禁用 jquery 可排序项目 的相关文章

随机推荐

  • MongoDB 正则表达式搜索:有关用户输入的安全性

    如果我能保证输入 value在下面的示例中 是字符串 即攻击者无法使用 PHP 魔法数组注入 以下代码足以防止注入吗 regex str replace value if substr value 0 1 regex regex if su
  • 如何将sqlite数据转换为xml文件以及将xml文件转换为sql数据?

    我正在开发一个应用程序 我想用 sqlite 数据创建一个 XML 文件 并将另一个 XML 数据放入 sqlite 字段中 所以请告诉我该怎么做 希望您使用 Core Data 与数据库进行交互 如果您这样做了 只需循环您的实体并使用 N
  • 具有渐变和平铺图像的 Android 背景

    对于线性布局 我希望在背景中具有渐变和平铺 重复 图像 我已经将形状 xml 设置为背景
  • Bash 终端不允许输入

    我尝试在 Windows 10 机器上使用 VS Code 中的集成终端和 bash 终端 自三月份以来我一直在使用相同的设置 但现在突然不允许我在终端中输入任何内容 当我启动 VS Code 时 终端会打开 但屏幕一直向下滚动 如果向上滚
  • LINQ-NHibernate - 为复杂对象仅选择几个字段(包括集合)

    我在我的一个项目 和 ASP NET MVC 应用程序 中使用 Fluent NHibernate 并使用 LINQ 来查询数据 使用 LINQ to NHibernate 库 更改物体名称是为了保护无辜者 假设我在数据库 MySQL 中有
  • 如何在JAVA中使用apache poi删除Excel中的警告?

    我在用apache poi api在我的 java 应用程序中生成 Excel 工作表 Excel 中设置的数据以字符串类型动态获取 对于第 1 列 值是字母数字 当我生成 Excel 时 它会给我绿色指示并带有警告 数字存储为文本 or
  • 对称 Lerp 和编译器优化

    我有一个功能 float lerp float alpha float x0 float x1 return 1 0f alpha x0 alpha x1 对于那些还没有看过的人来说 这比x0 x1 x0 alpha因为后者并不能保证ler
  • SonarQube 5.6 恢复质量配置文件

    我正在尝试使用curl 通过 Web API 恢复全新安装的 SonarQube v 5 6 4 的质量配置文件 在 c temp 中 我有一个从运行 Sonar 导出的 Sonar way 配置文件 我已将其重命名为 test xml 在
  • 使用 php usort 进行第二次排序

    所以我有相当大的数据数组 需要按两个标准对它们进行排序 有变数 data important and data basic 它们是简单的数字 我使用 uasort 进行排序 data首先按重要 然后按基本 So Important Basi
  • 如何在powershell中分析(计时)

    我的 powershell 脚本运行缓慢 有什么方法可以分析 powershell 脚本吗 在此处发布您的脚本确实有助于给出准确的答案 您可以使用 Measure Command 查看脚本中每个语句所花费的时间 但是 您必须将每个语句包装在
  • 基于在线 Apache Web 日志分析器,仅提交原始日志文件 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个来自 Apache 的原始 access log 文件 是否有任何基于网络的版本工具 我可以在其
  • XSLT:如何生成每行 3 个单元格的 HTML 表格

    我按照以下说明生成了一个每行 2 个单元格的 HTML 表格这篇文章来自 StackOverflow https stackoverflow com questions 5387134 xslt and tables setting num
  • 如何使用 F# 语法将 Type 作为属性参数传递?

    FsCheck 允许自定义Arbitrary在其 NUnit 集成中
  • Ruby 中的自然语言处理 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想做一些句子分析 主要针对 Twitter 应用程序 并推断一些一般特征 Ruby 中有针对此类事情
  • 如何在 Perl 中使用 fork() ?

    我的数组中有数百个文件名 我想为数组中的每 4 个文件创建一个子进程 并让该子进程对这 4 个文件中的每一个文件执行一些操作 因此 对于 100 个文件 我将创建 25 个进程 我在理解存在分叉时处理行的顺序时遇到一些困难 我本以为我可以做
  • Audiomanager 和 MediaPlayer 之间的区别

    谁能解释一下有什么区别AudioManager and MediaPlayer在安卓中 如果我是对的 那么AudioManager只能播放音频 而MediaPlayer可以播放音频和视频 但我相信这其中一定还有更多的内容 Thanks Au
  • 如何在 Python 中进行 Obj-C 类别?

    Obj C 我已经很长时间没有使用它了 有一个叫做类别 http macdevelopertips com objective c objective c categories html来延长课程 用新方法声明一个类别并将其编译到您的程序中
  • 如何在 Objective c 中获取当前月份的日期?

    我正在开发一个使用日期 月份 年份的应用程序 我想要当前月份的日期 因为当前月份可以有 28 29 30 31 天 我试图获取当年的月份 但我不知道上面的代码 这是我的代码 NSDateFormatter dateFormatter NSD
  • 使用 ApplicationDbContext 的身份脚手架

    ASP NET Core 2 x 现在将身份页面和逻辑隐藏在库内 为了延长IdentityUser具有新属性的实体并添加 UI 和逻辑来处理这些新属性 我们现在可以运行 身份脚手架 在 MyProject gt 添加 gt 新脚手架项下 很
  • 动态启用/禁用 jquery 可排序项目

    我的表格行可以根据是否选中某些单选按钮进行排序 可排序对象初始化于document ready如下 document ready function Return a helper with preserved width of cells