单击外部时隐藏下拉菜单

2024-02-10

我有一个下拉菜单,里面有复选框。我想当用户点击外部时关闭下拉菜单。

我的代码是:

<form>
<div class="multiselect">
    <div class="selectBox" onclick="showCheckboxes()">
        <select>
        </select>
    </div>
    <div class="checkboxes" id="checkboxes">
        @{ 
            if (ViewBag.DataActiveEmployee == null || ((IEnumerable<MvcApplication1.Models.ActiveUsersList>)ViewBag.DataActiveEmployee).Count() == 0)
            {
                //@:<h3>No records were processed.</h3>

            }
            else
            {
                foreach (var usr in ViewBag.DataActiveEmployee)
                {                   
                        <label id="userName">@usr.EmployeeName</label>     
                        <input class="checked" type="checkbox" name="search_emp" id="search_emp" [email protected] /cdn-cgi/l/email-protection>
                @:
        }
            }
        }

    </div>
</div>

JS

<script>
var expanded = false;
checkboxes.style.display = "none";
function showCheckboxes() {
    var checkboxes = document.getElementById("checkboxes");
    if (!expanded) {
        checkboxes.style.display = "block";
        expanded = true;
    } else {
        checkboxes.style.display = "none";
        expanded = false;
    }
}

$('multiselect').click(function () {
    $("#checkboxes").hide();
});

问题出在 JavaScript 的第二个函数内部,因为当我按下外部时,什么也没有发生。

请帮忙。


尝试使用event.target处理点击事件:

UPDATE

$(document).on('click', '.multiselect .selectBox', function(e) {
  e.stopImmediatePropagation();
  $('#checkboxes').show();
});

$('body').on('click', function(e) {  
  if (e.target.id != 'checkboxes' && $(e.target).closest('#checkboxes').length == 0) {
    $('#checkboxes').hide();
  }
});
#checkboxes,
.multiselect {
  padding:15px;
  border:1px solid #d8d8d8;
}

.selectBox { display: inline; }

#checkboxes { display:none }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="multiselect">
    <div class="selectBox">
        <select>
        </select>
    </div>
    <div class="checkboxes" id="checkboxes">
        <label id="userName">Employee 1</label>     
        <input class="checked" type="checkbox" name="search_emp" id="emp_1" value="val_1">
        <label id="userName">Employee 1</label>     
        <input class="checked" type="checkbox" name="search_emp" id="emp_1" value="val_1">
    </div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击外部时隐藏下拉菜单 的相关文章

  • 通过 Javascript 更改 Webkit 属性?

    请帮助我 可能是因为我对 CSS 动画和 Javascript 相当陌生 但我使用的代码应该更改它的属性 当我运行代码时 它会执行代码中的所有其他操作 除了更改所需 div 的 CSS 属性 我已经尝试了所有这四种方法 但似乎都不起作用 它
  • 从 ES6 模块导入函数表达式或函数声明有什么区别?

    据我了解 参见第 16 3 2 1 节 http exploringjs com es6 ch modules html ES6 允许函数 类导出操作数使用不同的语法 区别在于导出的函数是否需要在导入时解释为函数声明 在这种情况下 您可以编
  • Javascript 制作音频 blob

    我正在测试 html 音频标签 我想制作音频 blob url 就像 youtube 或 vimeo 那样 并将其添加到 src 开始播放音频 我一直在测试new Blob and URL createObjectURL 但我不知道如何使用
  • TypeError:cli.init 不是 React Native 的函数

    在 MacBook Air M1 芯片中运行 npx react native init appName 时 TypeError cli init is not a function at run opt homebrew lib node
  • 使用 jquery 更改锚文本和图标

    我有一个隐藏或显示 div 的锚标记 但我无法更改它的文本和图标 如何更改文本和图标标签 因为目前它将图标标签解析为常规文本 锚标记 a class collapse info btn i class icon arrow up icon
  • bootstrap-select 未选择任何内容

    我正在使用引导选择
  • Google 地图 Javascript v3 折线点击事件

    我正在尝试显示一张地图 其中有多条路线布置为折线 单击多段线时 我想显示特定于该线的数据 将数据与线关联不是问题 但无论单击哪条线 显示的数据都会与最近绘制的线关联 就好像每条新折线都会覆盖最后一条线一样 我有一个数据库 其中包含 gpx
  • Lightbox:如何翻译“Image x of x”文本?

    我使用 Lightbox 2 作为图像集 当我的网站的访问者单击该集中的缩略图时 它将显示 图像的放大版本 下面是 描述 取自 a 标题属性 其下方 文本 Image x of x 例如 Image 1 of 12 有谁知道在哪里翻译 更改
  • 将屏幕宽度获取到 javascript 变量中并通过 ajax 将其发送到 php 页面以避免页面加载

    这是JS检测我的页面命名上的屏幕分辨率index html并将其发送到 php 以便可以使用以下方式检索值 GET 这是我的PHP文件命名的内容process php
  • Flask 和 Reactjs 抛出 JSX 转换错误

    我已经开始将 ReactJS 与 Python Flask 后端结合使用 通过 Flask 渲染模板时 我在 Chrome 控制台中收到以下客户端错误 错误 找不到模块 jstransform visitors es6 templates
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • 如何使 4.X Typescript 项目与旧版本的 Typescript(如 3.X)兼容?

    如何使基于 TS 4 X 构建的软件包与 3 X 兼容 例如 如果我有较新的版本 则使用新功能 否则使用any or unknown或旧版本支持的任何内容 有没有可能使用指令 https www typescriptlang org doc
  • Dojo“正在加载”消息

    我是 Dojo 新手 所以我需要一些帮助 我的一些链接需要一段时间 当用户单击时 页面开始加载需要几秒钟 我想添加一条 正在加载 消息 我可以用 旧时尚方式 来做 但我想学习新的 更简单 更智能的 Dojo 方式 具体如何工作现在并不重要
  • 禁用移动设备上的锚点菜单点击

    我使用嵌套列表作为带有子菜单项的菜单 我曾经这样做过 如果您将鼠标悬停在主菜单项上 子菜单项将通过将显示从无更改为块来出现 我决定让子菜单看起来就像是下拉的 并使用了 CSS 过渡 我遇到的问题是 在第一种方法中 如果您触摸 iPad 上的
  • 如何在react.js中将/n替换为换行符?

    我正在尝试更换每一个 n to a br tag in ReactJS In my note note对象有一个包含多个的字符串 n in it 示例注释 注释 test ntest ntest 我尝试过的ReactJS note note
  • javascript从字符串创建不区分大小写的正则表达式

    我试图通过以不区分大小写的方式将输入与正则表达式匹配来进行验证 正则表达式作为对象上的字符串从服务中下来 我可能会得到类似的东西 regex ane 我可以执行以下操作 var rx new RegExp object regex The
  • 如何使用 Chart.js 版本 3.2.1 在圆环图中添加文本

    我正在使用 Canvas 在 HTML 中使用 如何使用在圆环图中添加文本 这是我的 javascript 代码和 HTML 代码 我使用了图表js版本3 2 1 所以请给出相同版本 3 的解决方案 var overallStatsCanv
  • 尽管 getBoundingClientRect() 是假的,但如何将事件坐标转换为 SVG 坐标?

    我正在尝试根据鼠标的位置在 SVG 元素上动态绘制内容 不幸的是 我很难将 mousemove 事件中的鼠标坐标转换为 SVG 元素的坐标空间 这是我一直在测试的一个有缺陷的函数 CylinderDemo prototype handleM
  • 用于替换前 5 个数字的正则表达式,无论它们之间有什么?

    我正在努力实现以下匹配 Input 123 45 6789 123456789 1234 正则表达式尝试输出 d 5 123 45 6789 123456789 1234 d 2 3 123 45 6789 123456789 1234 d
  • 加载谷歌地图控件时是否有事件?

    我知道tilesloaded 但控件似乎在该事件之后加载 我基本上希望能够通过 jQuery 获取控件 但甚至找不到正确的监听 我也刚刚处理了 没有类似的事件 在控件可见之前空闲和tilesloaded触发 因此 基本上将 特殊控制 类添加

随机推荐

  • ansible:从逗号分隔的字符串创建列表

    我想从逗号分隔的字符串创建一个列表以传递到ansible中的循环 有时变量也只能有一个值 var1 test1 test2 也可以是 var1 test1 这是我的代码 name Separate facts set fact groups
  • ViewDidLoad 期间调用 Xamarin 异步 ViewDidAppear

    我正在尝试在 ViewDidLoad 上初始化视图模型 我需要在 ViewModel 初始化代码中调用一些异步方法 因此我将异步代码从构造函数移到了异步工厂方法 http blog stephencleary com 2013 01 asy
  • 如何在 DynamoDB 中创建数据库

    我对 DynamoDB 非常陌生 在阅读文档时 我看到了以下句子 http docs aws amazon com amazondynamodb latest developerguide DataModel html 在 Amazon D
  • R/Shiny :框的颜色取决于选择

    我尝试创建闪亮的动态盒子 我们可以使用 status 警告 或 信息 等 更改框的状态 颜色 我想 动态 更改此框的颜色 具体取决于选择输入的选择 如下所示 https image noelshack com fichiers 2018 3
  • 如何转义 JavaScript 字符串中的 & 符号,以便页面严格验证?

    我正在尝试使用 JQuery 将 dataString 传递给 ajax 调用 在调用中 我构造了get参数 然后将它们发送到接收端的php页面 问题在于数据字符串中包含 符号 并且 HTML 严格验证器对其进行了阻塞 这是代码 docum
  • SQL 错误 ORA 01427

    我正在尝试通过使用此查询从数据存储中的另一个表收集值来更新表中的一列 UPDATE tablename PT SET DID select distinct did from datastore get dept alias where u
  • 未定义的引用错误 OpenCv Android with ndk 18 (c++_static)

    我更新了 Android Studio 以使用 ndk18 并更改了 APP STL c static 这会导致 OpenCv 中出现一堆链接器错误 thirdparty opencv android sdk sdk native jni
  • sbt 0.11.3:获取最新版本的 git 插件

    我有一个使用 sbt 0 11 3 构建的多项目结构 我想集中我的依赖版本 项目版本 工件 shell 提示符等 这对我的发布管理和版本控制计划非常有帮助 所以我创建了一个插件并将我的全局配置放在那里 我的项目从 github 读取它并将其
  • 我需要在我的 Android 应用程序中实现通知提醒

    我的要求 我希望我的应用程序在每周五上午 8 点显示提醒通知 我使用 AlarmManager BroadcastReceivers 来实现我的提醒通知 我遇到的问题是 当我使用当前系统时间设置通知时间并在其中添加 2 分钟时 当我以这种方
  • Dokku 编译错误 - django.core.exceptions.ImproperlyConfigured:加载 psycopg2 模块时出错:没有名为“psycopg2”的模块

    我一直在尝试将构建的 Django 实例设置为数据库服务器 我选择了 DigitalOcean 作为我的平台 并了解到 Dokku 是一个有用的 PaaS 系统 它将为我尝试部署的 API 提供更好的可扩展性 在过去的 3 4 天里 我一直
  • 如何有效调试方法链函数参数?

    看一下下面的代码结构 myFunction myArray filter keep true uniq id value myFunction 使用 lodash 进行某些数组转换的结果作为其参数 虽然我喜欢代码的风格 但我发现很难调试并最
  • 如何为SqlDataSource UpdateCommand设置参数

    对于网格视图 我第一次尝试在 SQLDataSource 中为 UpdateCommand 使用存储过程
  • 使用 ShareActionProvider 时如何关闭共享历史记录?

    Android 4 0 或早期版本 如果您使用 ActionBarSherlock 中提供的新 ShareActionProvider 具有一项功能 可以在操作栏中显示上次使用的项目 有办法把这个关掉吗 对我来说 避免历史图标的最佳解决方案
  • 字典值更改而不执行任何更新[重复]

    这个问题在这里已经有答案了 为什么每个键的值都会更新 d 0 0 1 0 1 for i in range 2 4 d i d i 1 d i append i print d Output 0 0 1 0 1 2 3 2 0 1 2 3
  • Android 中稳定、准确的计时

    我正在尝试为 Android 设备创建一个音乐音序器应用程序 并且希望获得一些有关如何实现坚如磐石的计时功能的建议 如果我将 Runnable 传递给 Handler postDelayed 并指定 x 毫秒的延迟时间 那么该 Runnab
  • 如何为 MS Access 编写区分大小写的查询?

    我想知道 MS Access 的选择查询区分大小写 我有两个 VitualMonitorName 值 如下所示 VCode VirtualMonitorName Row 1 1 VM1 Row 2 2 Vm1 这里两个值是不同的 如果我写
  • 创建空 S4 对象的向量

    这可能是微不足道的 但我没有在网上找到任何东西 是否可以在 R 中创建空 S4 对象的向量 就像是 s4Vec lt rep emptyS4Object 10 Thanks 像这样 s4Vec lt lapply rep yourClass
  • 在 Eclipse 中,为什么“自动构建”被神秘地禁用?

    我正在运行 Eclipse Europa 3 3 我始终将 项目 菜单下的 自动构建 设置保留为打开状态 偶尔我的代码无法编译 我对它感到困惑 然后拉下 项目 菜单 你瞧 它不再设置了 是什么赋予了 这是一个错误 还是我正在做的其他事情可能
  • 用 python 可视化二维随机游走

    我正在尝试在二维中进行随机游走 并绘制二维游走 我已经能够步行了 但情节并不完全是我想要的 可以用 python 现场观看步行吗 或者只是为每个点添加一个标签 以便您知道哪个点是第一个 哪个点是第二个等等 import numpy as n
  • 单击外部时隐藏下拉菜单

    我有一个下拉菜单 里面有复选框 我想当用户点击外部时关闭下拉菜单 我的代码是