>  기사  >  웹 프론트엔드  >  부트스트랩 드롭다운 메뉴를 클릭하여 즉시 숨길 때 문제를 해결하는 방법

부트스트랩 드롭다운 메뉴를 클릭하여 즉시 숨길 때 문제를 해결하는 방법

零下一度
零下一度원래의
2017-06-15 13:30:481442검색

이 글에서는 부트스트랩 드롭다운 메뉴를 클릭하면 바로 숨겨지는 버그를 해결하는 방법을 주로 소개합니다. 관심 있는 분들은 참고하시면 좋을 것 같습니다.

어제는 jQuery와 부트스트랩을 사용했습니다. 드롭다운 메뉴 체크박스를 구현해보겠습니다. 오늘은 데모해보겠습니다. 프로젝트에 결합한 후 은행 체크박스를 클릭하면 드롭다운 메뉴 p가 매번 즉시 숨겨지는데, 이는 하나만 사용할 수 있다는 의미입니다. 한 번에 선택됩니다.


이것이 이벤트 전파의 이유가 될 것입니다. 코드는 다음과 같이 수정됩니다.


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);
  }
})

추가로 추가해야 할 새로운 기능은 "저장" 버튼을 클릭할 때, 선택한 은행 이름은 쉼표로 연결되어야 하며 백그라운드에 문자열로 전달됩니다. 이 부분은 비교적 간단하며 코드는 다음과 같습니다.


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

위 내용은 부트스트랩 드롭다운 메뉴를 클릭하여 즉시 숨길 때 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.