有谁能解释为什么当点击$("#test").click()
复选框时,$(this).is(":checked")
给出的结果与手动点击或点击document.getElementById("test").click()
时相反吗?
编辑请求的行为在这里-谢谢:
http://jsfiddle.net/ub8Zk/4/编辑2这已经把我逼疯了,但我终于意识到——在1.5.2版本的jQuery中,change
事件的事件处理程序被触发时,click()
方法被调用(像原生js)!!在以前的版本中不是这样。
看这里:
http://dl.dropbox.com/u/6996564/jquery_click_test/test-1.4.4.htm…test-1.5.1.htm…test-1.5.2.htm
有人能帮我报告这个bug吗?点击事件发生在值改变之前,所以它得到的是旧的值。click的默认处理程序发生在单击事件之后,并切换该值。这就是为什么它得到相反的值。我认为文档点击功能做了一些奇怪的事情(我不会相信它,我会相信jQuery)。
看这提琴:http://jsfiddle.net/ub8Zk/4/
由于您使用的是复选框输入,因此您需要is(':checked')
而不是is(':selected')
$('input#someCheckbox').click(function() {
if ($(this).is(':checked')) {
// checked
} else {
// not checked
};
});
我看不到你的代码。Click()根据文档将处理程序绑定到鼠标单击事件。你也可以这样写:$('#foo')。Bind ('click', function() {alert('用户点击foo. ' ');});如果你想触发,使用trigger()函数如下:$('foo').trigger('click')或document.getElementById('foo')。Checked = true;