我遇到了 jQuery 1.7.2/1.8.2
的问题(没有测试早期版本),prop('checked')
似乎正在返回不一致的值(value)观。
我有 2 个未选中的复选框:
<input id="input1" type="checkbox"/>
<input id="input2" type="checkbox"/>
当我在 ready
上调用 $('#input1').click()
时,prop('checked')
给我 假
。当我手动点击 #input2
时,我得到了 true
。 I've created a jsFiddle
showing the problem .
我希望 prop('checked')
方法在 click
事件处理程序中以一致的方式返回数据,无论它是如何触发的,这不会好像不是这样。
我错过了什么吗?这是一个已知的错误?是否有一种解决方法可以在 click
处理程序中拥有一致的 .prop('checked')
数据,无论它是如何触发的?
PS:我已经使用 FF 15.0.1
、Chrome 21.0.1180
、jQuery 1.7.2 和 1.8.2
进行了测试。无论我使用 .click(
还是 .on('click'
最佳答案
不一致行为的原因是 .click()
与实际单击元素之间的差异。实际上单击它会更改 checked
状态,而 .click()
只会执行 jQuery 绑定(bind)的处理程序。
所以点击元素会改变它是否被选中,然后告诉你新的状态,而使用触发机制只会告诉你以前存在的状态。
关于javascript - 手动或以编程方式单击时与 Prop ('checked' 不一致),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565193/