3

我遇到了一个问题jQuery 1.7.2/1.8.2(没有测试早期版本),prop('checked')似乎返回了不一致的值。

我有 2 个未选中的复选框:

<input id="input1" type="checkbox"/>
<input id="input2" type="checkbox"/>​

当我打电话$('#input1').click()readyprop('checked')给我false。当我手动单击时,#input2我得到true. 我已经创建了一个jsFiddle显示问题

我希望该prop('checked')方法在事件处理程序中以一致的方式返回数据click,无论这是如何触发的,但似乎并非如此。

我错过了什么吗?这是一个已知的错误?无论是如何触发的,是否有一种解决方法可以.prop('checked')在处理程序中保持一致的数据?click

PS:我已经用FF 15.0.1, Chrome 21.0.1180,进行了测试jQuery 1.7.2 and 1.8.2。无论我使用.click(还是.on('click'

4

1 回答 1

3

行为不一致的原因是.click()与实际单击元素之间的差异。实际上单击它会更改checked状态,而.click()仅执行 jQuery 绑定的处理程序。

所以点击元素会改变它是否被选中,然后告诉你新的状态,而使用触发机制只会告诉你以前存在的状态。

于 2012-09-24T12:43:26.197 回答