相同的选择菜单列表项切换

2024-01-14

我正在尝试开发一个涉及 2 个选择列表项的功能。

流程是这样的,

  1. 有两个列表项(相同)具有相同的列表项
  2. 当我选择一个选项时Main Tags列表,相同的选项Sub Tags列表应该被禁用。例如,如果我选择Tag 1来自Main Tags然后列出Tag 1来自Sub Tags列表应该被禁用。 (切换效果:当我从第一个列表中选择其他选项时,之前禁用的项目应该启用)
  3. Sub Tags列表是多项选择。这里选定的值在其旁边显示为带有删除标签选项的标签(这在我的代码中起作用)。但是当用户更改选项时Main Tags列表,同样的东西已经在这里显示为Selected tags那么它应该从中删除selected tags部分和Sub Tags列表(此时已禁用)。

基本思想是两个选项下不要有相同的选项Main Tags and Sub Tags

希望我的问题很清楚。

这是我当前的代码,

$(function () {
    $("#tagSel").change(function () {
        $this = $(this);
        $("#tags").append('<span id="' + $this.val() + '"> ' + $this.find('option:selected').text() + ' <a href="#">&times;</a></span>');
        $this.find('option:selected').prop("disabled", true);
    });
    $("#tags").on("click", "span a", function () {
        $("#tagSel option[value='" + $(this).parent().attr("id") + "']").prop('disabled',null);
        $(this).parent().remove();
        $("#tagSel_main").append('<i ></i>')
    });
});

DEMO https://jsfiddle.net/4ktduf39/11/


我相信这可能会成功。

我对该函数进行了评论以阐明 if 的功能。

$('#tagSel_main').on('change', function() {
    /* find selected option */
    var selector = $(this).find(':selected').val();
    /* remove the disabled property from the active sub tag (if it exists) */
    $('.activeSubTag').removeClass('activeSubTag').prop('disabled', false );
    /* disable the now selected sub tag and give a class (for the above rule) */
    $('#tagSel option[value='+selector+']').addClass('activeSubTag').prop('disabled', true );
    /* remove the sub tag from "selected sub tags" (if it exists) */
    $('#tags span#'+selector).remove();
});

更新的小提琴 https://jsfiddle.net/4ktduf39/17/

EDIT

好像IE和Chrome不允许display:none在一个选项上。因此我发现[这个解决方法]](如何使用CSS隐藏菜单中的? https://stackoverflow.com/questions/9234830/how-to-hide-a-option-in-a-select-menu-with-css).

其代码更改为:

 $('#tagSel_main').on('change', function() {
    var selector = $(this).find(':selected').val();
    $('.activeSubTag option').unwrap();
    $('#tagSel option[value='+selector+']').wrap('<span class="activeSubTag" style="display:none"></span>');
    $('#tags span#'+selector).remove();
});

更新的小提琴 https://jsfiddle.net/4ktduf39/30/

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

相同的选择菜单列表项切换 的相关文章

随机推荐

  • Powershell 中的快速注册表搜索器

    我正在尝试将我在 Github 上找到的这个搜索注册表脚本合并到我的一个脚本中 https github com KurtDeGreeff PlayPowershell blob master Search Registry ps1 htt
  • 如何在 mongodb 类别中返回布尔值

    如果我有一个收藏Friends like id ObjectId abcdef1 user Jim user2 Jon id ObjectId abcdef2 user Jim user2 Fred id ObjectId abcdef3
  • Android Studio:NoClassDefFoundError

    我正在尝试构建一个使用 javamail 和 gmail 的 smtp 服务发送电子邮件的应用程序 但是当我运行它时 当我调用 Session getInstance 时它会崩溃 调试后发现这是一个关于 com sun mail util
  • python:绘制线框3D长方体

    我想在 python 中绘制 3d 长方体 输入 中心 中心3分 半径 3 个半径值 每个维度一个 理想情况下 它应该是一个线框图 我需要看看里面有什么 我不太确定如何去做 使用 python matplotlib 或 Mayavi 就可以
  • 有什么方法可以让 python 文件名不以完全限定名称结尾吗?

    假设我们有这样的文件结构 project ticklers kitten tickler py class KittenTickler puppy tickler py class PuppyTickler 假设 KittenTickler
  • 导入文本文件出现错误

    我有一个包含以下数据的文本文件 5298 10036 4 360 8 6128 11947 2 385 7 9472 18930 0 233 4 5056 9790 1 293 6 我使用以下代码读取该文件 file1 open test
  • 适用于 VISTA、7 及更高版本的 Windows API

    WinAPI Win32 之间有什么根本区别吗 利用新操作系统功能是否需要任何其他知识 过去编写过 Win32 应用程序的人是否可能会陷入任何陷阱 我不是在谈论 Silverlight 那是一个完全不同的蜡球 我还没有在工作中支持这一点的
  • 我可以安全地将 OpenMP 与 C++11 结合使用吗?

    OpenMP 标准仅考虑 C 98 ISO IEC 14882 1998 这意味着在 C 03 甚至 C 11 下没有支持使用 OpenMP 的标准 因此 任何使用 C gt 98 和 OpenMP 的程序都会在标准之外运行 这意味着即使它
  • 使用 rhino 的 JavaAdapter 的示例

    有人可以给我提供一个如何使用 Rhino 的 java 适配器在 java 脚本中扩展 java 类的示例吗 对于其他可能遇到此问题的人来说 有一个很好的例子here http my opera com sutabi blog puttin
  • 已达到 Google App Engine 前端实例时间限制

    我有一个使用 Google App Engine 免费选项托管的静态 html 网站 我没有任何流量可言 因为它是新网站 唯一的流量是我自己访问该网站 我注意到 只有 15 个主页请求 我的前端实例消耗时间为 5 按照这个速度 我的网站每天
  • 如何在Tableau中显示40+列?

    我正在尝试制作一份包含大约 40 列 Dims measure 的列表报告 但无法正确完成 该要求推动了Tableau通过利用其仅 16 列的限制来限制 我怎样才能完成这件事 我读了这个 http www tableausoftware c
  • Dot:如何用黑色轮廓装饰图形节点,同时用另一种颜色填充?

    我需要格式化点图的帮助 为了简化我的问题 我在这里有一个点代码 我通过点工具运行它 digraph G TestNode label Test Node shape egg style filled color yellow 结果是这样的
  • HTTParty 的内存问题和下载大文件

    这会导致 Ruby 的内存问题吗 我知道如果大小超过 10KB Open URI 就会写入 TempFile 但是 HTTParty 会在写入 TempFile 之前尝试将整个 PDF 保存到内存中吗 src Tempfile new fi
  • 调整 WriteableBitmap 的大小

    我创建了 Gray16 格式的 WriteableBitmap 我想将此 WriteableBitmap 调整为我已知的尺寸 并保留像素格式 Gray16 是否有人致力于调整 WriteableBitmap 的大小 请帮我 我也在网上搜索了
  • queryselectorAll() 与正则表达式属性选择器

    var arr slice call document querySelectorAll a href pricing 返回一个长度为 6 的数组 var arr slice call document querySelectorAll a
  • 访问 SimpleXMLElement 中的数字属性

    我正在尝试访问以下元素中的数字 但无法从中获取值 echo object gt 0 returns Parse error syntax error unexpected T LNUMBER expecting T STRING or T
  • Maven:POM 模块和子模块层次结构

    我的项目结构如下 module pom xml submodule pom xml pom xml POM 简化 Project
  • 如何使用字符串创建 JSON 对象?

    我想使用 String 创建一个 JSON 对象 例子 JSON test1 value1 test2 id 0 name testName 为了创建上面的 JSON 我使用了它 String message JSONObject json
  • 将多个 javascript 文件合并为一个的工具... [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一种工具可以将多个javascript文件合并为一个然后压缩它们 雅虎 YUI 压缩器 http developer yahoo c
  • 相同的选择菜单列表项切换

    我正在尝试开发一个涉及 2 个选择列表项的功能 流程是这样的 有两个列表项 相同 具有相同的列表项 当我选择一个选项时Main Tags列表 相同的选项Sub Tags列表应该被禁用 例如 如果我选择Tag 1来自Main Tags然后列出