我使用ThreeDubMedia的拖放选择功能来选中和取消选中几个复选框。它将检查和取消检查它们一次,但不会超过这一次。此外,当我使用inspect查看元素时,它们开始时没有checked属性,这是应该的;当他们被选中时,他们会得到它,因为他们应该这样做;当他们再次被选中时就会失去它,这是理所当然的。”但是,”这就是奇怪的地方。如果我第次选择它,它会获得checked属性,但不会检查!如果我第四次选择它,什么也不会发生!我不知道是什么引起的。
checked
(来源:snag.gy)
pftdvrlh1#
目前,您实际上是在删除该属性(使用removeAttr()),而不是仅仅关闭它(例如,prop('checked', false))。你应该使用prop()。以下工程:
removeAttr()
prop('checked', false)
if (this.checked) { $(this).prop('checked', false); } else { $(this).prop('checked',true); }
jsFiddle here.或者更好,正如@Pointy提到的:
@Pointy
.drop(function( ev, dd ){ this.checked = !this.checked; });
jsFiddle here.
1条答案
按热度按时间pftdvrlh1#
目前,您实际上是在删除该属性(使用
removeAttr()
),而不是仅仅关闭它(例如,prop('checked', false)
)。你应该使用prop()。以下工程:
jsFiddle here.
或者更好,正如
@Pointy
提到的:jsFiddle here.