我遇到jQuery 1.7.2/1.8.2
(未测试早期版本)的问题,prop('checked')
似乎返回了不一致的值。
我有两个未选中的复选框:
<input id="input1" type="checkbox"/>
<input id="input2" type="checkbox"/>
当我在$('#input1').click()
上致电ready
时,prop('checked')
会给我false
。当我在#input2
上手动点击时,我得到true
。 I've created a jsFiddle
showing the problem
我希望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'
答案 0 :(得分:3)
行为不一致的原因是.click()
与实际点击元素之间的差异。实际上,单击它会更改checked
状态,而.click()
仅执行jQuery绑定的处理程序。
因此,单击元素会更改是否选中,然后告诉您新状态,而使用触发机制只会告诉您先前存在的状态。