6

为什么引导模式中的复选框不起作用?

我使用此代码使其正常工作,但仍有问题

documentBody.on('click','.checkInp',null,function(e) { 
    var checkbox = $(this).find(":checkbox"),
    checked = checkbox.is(":checked"); 
    checkbox.prop("checked", !checked);

});

documentBody.on('click','.checkInp :checkbox',null,function(e) { 
  $(this).parent('span').trigger('click');

}); 

当我单击它时,未选中时没有选中出现,或者选中时未选中?但是如果我单击跨度区域,则复选框被标记为选中或取消选中

这是我的小提琴

4

3 回答 3

7

猜猜你试图克服e.preventDefault()点击事件中的引导模式——这就是它永远不起作用的原因。这两个事件似乎也互相淘汰了?

试试这个:

$('.checkInp input:checkbox').on('click', function(e) {

    // prevents the event from bubbling up the DOM tree
    // eg the modal from cancelling the event
    e.stopImmediatePropagation();

    var checked = (e.currentTarget.checked) ? false : true;
    e.currentTarget.checked=(checked) ? false : checked.toString();
});

分叉小提琴:http: //jsfiddle.net/AurPX/

于 2013-07-17T14:29:40.740 回答
6

davidkonrad 的解决方案非常好。虽然,它不尊重标签标签。这是一个修改后的版本:

jQuery(".modal input:checkbox,.modal label").on("click", function(e)
{
    e.stopImmediatePropagation();
    var element = (e.currentTarget.htmlFor !== undefined) ? e.currentTarget.htmlFor : e.currentTarget;
    var checked = (element.checked) ? false : true;
    element.checked = (checked) ? false : checked.toString();
});
于 2013-08-01T12:48:52.947 回答
-3

我也遇到了这个麻烦,我花了一天时间用 Jquery 解决它。

不幸的是,JQuery 解决起来并不容易,只好改用其他方式。

最后 angularjs 解决了这个问题。

尝试 ng-checked。

<div class="modal fad"
....
<input type="checkbox" class="css-checkbox" ng-checked="checked">
</div>

js: 把它设置为 true 就像

$scope.checked = 'true';
于 2015-11-20T10:14:18.883 回答