为什么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