任何人都可以解释为什么当使用 $("#test").click() 单击复选框时
比手动单击或使用 $(this).is(":checked")
给出相反的结果document.getElementById("test").click()
??
在这里编辑请求的行为 - 谢谢:
编辑2
这让我抓狂,但我终于意识到——在 jQuery 1.5.2 版本中,当 click()
时,会触发 change
事件的事件处理程序方法被调用(就像原生js一样)!以前的版本并非如此。
看这里:
http://dl.dropbox.com/u/6996564/jquery_click_test/test-1.4.4.htm ...测试-1.5.1.htm ...测试-1.5.2.htm
有人可以帮我报告这个错误吗?
最佳答案
点击事件发生在值更改之前,因此它获取的是旧值。单击的默认处理程序发生在单击事件之后并切换值。这就是为什么它得到相反的值。我认为文档单击功能正在做一些奇怪的事情(我不会相信它,我会相信 jQuery)。
看看这个 fiddle :http://jsfiddle.net/ub8Zk/4/
关于jquery - 奇怪的 jQuery ("checkbox").click().is (":checked") 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5670411/