2

我正在使用 ThreeDubMedia 的拖放选择功能来选中和取消选中几个复选框。它将检查和取消选中它们一次,但仅此而已。更重要的是,当我使用检查查看元素时,它们开始时没有checked属性,这是应该的;他们应该在被选中时获得它;当他们再次选择时,他们会失去它,因为他们应该这样做。然而,这就是它变得奇怪的地方。如果我第三次选择它,它会获得checked属性,但不检查!如果我第四次选择它,什么都不会发生!我不知道是什么原因造成的。

http://i.snag.gy/AieOg.jpg

4

1 回答 1

4

目前,您实际上是在删除该属性(使用removeAttr()),而不是仅仅将其关闭(例如prop('checked', false))。

你应该使用prop()。以下作品:

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

jsFiddle在这里。


或者更好,@Pointy如前所述:

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

jsFiddle在这里。

于 2013-05-21T22:50:02.707 回答