为什么这些复选框不能按预期工作?

时间:2011-10-15 23:31:43

标签: javascript jquery

See fiddle

  1. 点击“jQuery”。 “最新稳定”得到检查
  2. 再次点击它。 “最新稳定”未经检查
  3. 点击“最新稳定”。 “jQuery”被检查
  4. 再次点击它。 “jQuery”未经检查
  5. 点击“jQuery”
  6. 点击“最新稳定”;他们出来同步
  7. 为什么呢?我试图让它们保持同步(即如果检查了任何子复选框,则应检查父项,反之亦然。单击未检查的父项应该检查顶级子项,否则如果已经检查过,它应该取消选中所有孩子)。 checktop.checked似乎无法准确反映用户界面。

    修改:在FF7,Chrome 16,IE9中测试。

    updated fiddle - 当我希望它“我没有被检查”时,会发出警告“我已经检查过”(如果您按照说明操作),因为您只是取消选中它,并且更改事件应该触发后跟

2 个答案:

答案 0 :(得分:7)

将所有出现的“item()”替换为“prop()”http://jsfiddle.net/Cqt5Q/8/

答案 1 :(得分:2)

我只注意到这种情况发生在:

  1. 点击jQuery
  2. 取消最新稳定版(此时
  3. unclick jQuery
  4. 如果您使用prop功能代替attr,则应该相应地运作。我注意到Molle博士和我几乎在同一时间得出了相同的结论:)