【发布时间】:2017-08-04 22:30:45
【问题描述】:
我正在使用以下代码,它确实切换了我的复选框,但不正确。
如果复选框已手动设置为选中,则会出现问题。
当您运行代码时,它会选中这些框,但当您再次单击它时,它只会取消选中之前未选中的那些。
$(".all").click(function(e) {
var checked = !$(this).data('checked');
$('.trigger').attr('checked', checked);
$(this).data('checked', checked);
});
我使用 input type='image' 作为我的元素来运行检查。
<input type="image" class="all" title="All" src="toggle.png"/>
我尝试过使用以下方法,但是当它运行时,它会取消选中复选框,然后删除我用来调用它的图像。
$('.all').toggle(function(){
$('input:checkbox').attr('checked','checked');
},function(){
$('input:checkbox').removeAttr('checked');
})
谁能告诉我如何正确地做到这一点。
谢谢
【问题讨论】:
-
请在您的问题中发布minimal reproducible example。使用
<>图标将 stacksn-p 直接添加到问题中,以便我们可以观察您所描述的行为 -
对复选框使用
:checked,而不是自定义数据值。或在.all代码中设置/取消设置您的数据值。 -
复制代码jsfiddle.net/7sm17x1k的示例
-
感谢这个例子有意义,我现在开始工作了。