解决bootstrap下拉菜单点击立即隐藏bug的方法


Posted in Javascript onJune 13, 2017

昨天用jQuery和bootstrap实现下拉菜单复选框,今天把做好的demo组合进项目里,发现有点bug,就是点击银行复选框的时候,每点一次dropdown-menu这个div会立即隐藏,这就导致每次只能选一个。

解决bootstrap下拉菜单点击立即隐藏bug的方法

这应该是事件传播的原因,代码修改如下:

var banks = $('.all').siblings().children();
$('.all>input').click(function() {
  var flag = $(this).prop('checked');
  banks.prop('checked', flag);
})

// 阻止事件传播, 否则在点击复选框的时候,dropdown-menu这个div会立即隐藏
$('.dropdown-menu label').click(function(e) {
  e.stopPropagation();
});
banks.click(function() {
  // 如果有一个没选中,全选按钮不选中
  // 如果全部选中,全选按钮被选中
  var num = 0;
  banks.each(function() {
    if ($(this).prop("checked")) {
      num++;
    }
  })
  if (num == banks.length) {
    $('.all>input').prop('checked', true);
  } else {
    $('.all>input').prop('checked', false);
  }
})

另外,需要新增加的功能是,点击“保存”按钮的时候,需要把选中的银行名称以逗号拼接成字符串传递给后台。这部分比较简单,代码如下:

// 在提交时,获取选中的所有值,并把这些值拼接成字符串
$('.submit').click(function() {
  var bankArr = [];
  banks.each(function() {
    if ($(this).prop("checked")) {
      bankArr.push($(this).val());
    }
  });
  var bankStr = bankArr.join(',');
  console.log(bankStr);
})

解决bootstrap下拉菜单点击立即隐藏bug的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
各种效果的jquery ui(接口)介绍
Sep 17 Javascript
JavaScript获取GridView选择的行内容
Apr 14 Javascript
IE6下拉框图层问题探讨及解决
Jan 03 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
Jul 26 Javascript
微信小程序 progress组件详解及实例代码
Oct 25 Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
Aug 15 Javascript
JS代码实现电脑配置检测功能
Mar 21 Javascript
vue的keep-alive中使用EventBus的方法
Apr 23 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
Apr 28 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
js笔试题-接收get请求参数
Jun 15 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 #Javascript
微信小程序 新建登录页并实现tabBar隐藏
Jun 13 #Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
Jun 13 #Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 #Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 #Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 #Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 #Javascript
You might like
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
[01:45]DOTA2众星出演!DSPL刀塔次级职业联赛宣传片
2014/11/21 DOTA
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
django站点管理详解
2017/12/12 Python
Python实现统计给定字符串中重复模式最高子串功能示例
2018/05/16 Python
详解Python time库的使用
2019/10/10 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Python 远程开关机的方法
2020/11/18 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
python爬取天气数据的实例详解
2020/11/20 Python
python中pow函数用法及功能说明
2020/12/04 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
党支部对照检查材料
2014/08/25 职场文书
五五普法心得体会
2014/09/04 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
信用卡催款律师函
2015/05/27 职场文书
主持稿开场白
2015/06/01 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫