为什么Bootstrap 3折叠与双击时的复选框状态不同步?
根据这个问题:“ 复选框检查时Twitter Bootstrap 3崩溃 ”我试过这个解决方案,因为它简单而干净。
http://jsfiddle.net/L0h3s7uf/1/
A B C D E
但是有了这个“解决方案”,你就会遇到问题。 如果单击该复选框太快,该区域将折叠但复选框将被选中。
我该如何防止这种双击问题?
我在用:
- Bootstrap 3
- jQuery 3.1.1
由于在bootstrap中没有专门用于切换的双击处理,所以我想出了一个特殊的工作来使双击同步。
我刚删除了data-toggle="collapse"
属性,将#testCheckBox
id添加到checkbox的父div
,我做了一些自定义脚本,检测是否双击或单击然后validation复选框值并切换其基数:
$('.collapse').collapse(); $("#testCheckBox :checkbox").bind('click dblclick', function(evt) { console.log(evt.type); if ($(this).is(":checked")) { $('.collapse').slideDown('fast'); } else { $('.collapse').slideUp('fast'); } })
演示: https : //jsbin.com/ciloliweto/edit?html,output
折叠时禁用复选框:
http://jsfiddle.net/L0h3s7uf/220/
I have Driver License $('.collapse').on('show.bs.collapse hide.bs.collapse', function() { $('#license_check_box').prop('disabled', true); }).on('shown.bs.collapse hidden.bs.collapse', function() { $('#license_check_box').prop('disabled', false); });
我认为这对你有用
$('.collapse').collapse() $("#check").one('click', function (event) { event.preventDefault(); //do something });
A B C D E