Jquery 必须单击li标记中的复选框两次才能取消选中
有人能帮我吗,当在一个有点击事件的li中时,如何停止复选框被选中两次?我试图添加e.stopPropagation函数,但它不起作用Jquery 必须单击li标记中的复选框两次才能取消选中,jquery,checkbox,twitter-bootstrap-3,drop-down-menu,checked,Jquery,Checkbox,Twitter Bootstrap 3,Drop Down Menu,Checked,有人能帮我吗,当在一个有点击事件的li中时,如何停止复选框被选中两次?我试图添加e.stopPropagation函数,但它不起作用 <div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Obor
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
<li class="dropdown-submenu"><a tabindex="-1" href="#">Automotive </a>
<ul class="dropdown-menu">
<li class="small" data-value="option2" tabIndex="-1"><input type="checkbox" checked/> Automobily </li>
<li class="small" data-value="option3" tabIndex="-1"><input type="checkbox" checked/> Nákladní auta </li>
<li class="small" data-value="option4" tabIndex="-1"><input type="checkbox" checked/> Autobusy </li>
<li class="small" data-value="option5" tabIndex="-1"><input type="checkbox" checked/> Prodej ojetých vozů </li>
<li class="small" data-value="option6" tabIndex="-1"><input type="checkbox" checked/> Komponenty </li>
<li class="small" data-value="option7" tabIndex="-1"><input type="checkbox" checked/> Alternativní pohony </li>
</ul></li></ul></div>
您的
选项
表示选中的复选框
为空(即使您的所有复选框都已选中)。要解决此问题,应在
选项
变量中放入选中复选框的所有li
父项的值
您可以使用此选项来执行此操作:
options = $("input[type='checkbox']:checked").map(function() {
return $(this).parent('li').data('value')
}).get();
下面是它在代码中的外观:
var选项=[];
选项=$(“输入[type='checkbox']:选中”).map(函数(){
返回$(this).parent('li').data('value'))
}).get();
$('.dropdown menu.small')。打开('单击',函数(事件){
var$target=$(event.currentTarget),
val=$target.attr('data value'),
$inp=$target.find('input'),
idx;
if((idx=options.indexOf(val))>-1){
选项。拼接(idx,1);
setTimeout(函数(){$inp.prop('checked',false)},0);
}否则{
选项。推送(val);
setTimeout(函数(){$inp.prop('checked',true)},0);
}
$(event.target).blur();
console.log(选项);
返回false;
});代码>
双簧管
-
汽车
Nákladníauta
汽车
- Prodej-ojetých-vozů
Komponenty
- 可选
options = $("input[type='checkbox']:checked").map(function() {
return $(this).parent('li').data('value')
}).get();