jquery 元素有“checked”属性但没有被检查?

o3imoua4  于 2023-10-17  发布在  jQuery
关注(0)|答案(1)|浏览(105)

我使用ThreeDubMedia的拖放选择功能来选中和取消选中几个复选框。它将检查和取消检查它们一次,但不会超过这一次。此外,当我使用inspect查看元素时,它们开始时没有checked属性,这是应该的;当他们被选中时,他们会得到它,因为他们应该这样做;当他们再次被选中时就会失去它,这是理所当然的。”但是,”这就是奇怪的地方。如果我第选择它,它会获得checked属性,但不会检查!如果我第四次选择它,什么也不会发生!我不知道是什么引起的。

(来源:snag.gy

pftdvrlh

pftdvrlh1#

目前,您实际上是在删除该属性(使用removeAttr()),而不是仅仅关闭它(例如,prop('checked', false))。
你应该使用prop()。以下工程:

if (this.checked) {
    $(this).prop('checked', false);
} else {
    $(this).prop('checked',true);
}

jsFiddle here.
或者更好,正如@Pointy提到的:

.drop(function( ev, dd ){
  this.checked = !this.checked;
});

jsFiddle here.

相关问题