이 글에서는 부트스트랩 드롭다운 메뉴를 클릭하면 바로 숨겨지는 버그를 해결하는 방법을 주로 소개합니다. 관심 있는 분들은 참고하시면 좋을 것 같습니다.
어제는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!