Home  >  Article  >  Web Front-end  >  How to solve the problem when clicking on the bootstrap drop-down menu to hide it immediately

How to solve the problem when clicking on the bootstrap drop-down menu to hide it immediately

零下一度
零下一度Original
2017-06-15 13:30:481442browse

This article mainly introduces the method to solve the bug of immediately hiding the bootstrap drop-down menu when clicked. It has certain reference value. If you are interested, you can learn about it

Yesterday, I used jQuery and bootstrap to implement the drop-down menu check box. Today, I combined the completed demo into the project and found a bug. When clicking on the bank checkbox, the dropdown-menu p will be hidden immediately, which means that only one can be selected at a time.


This should be the reason for event propagation. The code is modified as follows:


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

// 阻止事件传播, 否则在点击复选框的时候,dropdown-menu这个p会立即隐藏
$('.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);
  }
})

In addition, new The added function is that when clicking the "Save" button, the selected bank name needs to be concatenated with commas into a string and passed to the backend. This part is relatively simple, the code is as follows:


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

The above is the detailed content of How to solve the problem when clicking on the bootstrap drop-down menu to hide it immediately. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn