我正在使用ThreeDubMedia的拖放选择功能来检查和取消选中几个复选框。它会检查并取消选中它们一次,但不会超过它。更重要的是,当我通过使用inspect来查看元素时,它们的开始没有checked
属性,因为它们应该;如果被选中,他们就会获得它;当他们应该再次被选中时,他们会失去它。 然而,这是奇怪的地方。如果我选择第三时间,它会获得checked
属性,但不会检查!如果我第四次选择它,没有任何反应!我不知道造成这种情况的原因。
答案 0 :(得分:4)
目前,您实际上是删除了该属性(使用removeAttr()
)而不是仅将其关闭(例如prop('checked', false)
)。
您应该使用prop()。以下作品:
if (this.checked) {
$(this).prop('checked', false);
} else {
$(this).prop('checked',true);
}
或者更好,正如@Pointy
提到的那样:
.drop(function( ev, dd ){
this.checked = !this.checked;
});