奇怪的jQuery(";checkbox";).click()是(";:checked";)行为
有人能解释为什么用奇怪的jQuery(";checkbox";).click()是(";:checked";)行为,jquery,click,checked,Jquery,Click,Checked,有人能解释为什么用$(“#测试”)单击复选框时,$(this.is(“:checked”)给出的结果与手动或用文档.getElementById(“测试”).click()单击的结果相反吗 在此处编辑请求的行为-谢谢: 编辑2 这让我抓狂,但我终于意识到——在jQuery的1.5.2版中,change事件的事件处理程序在调用click()!!在以前的版本中并非如此 看这里: ... test-1.5.1.htm ... test-1.5.2.htm 有人能帮我报告这个错误吗?因为你使用的是复
$(“#测试”)单击复选框时,$(this.is(“:checked”)
给出的结果与手动或用文档.getElementById(“测试”).click()单击的结果相反吗
在此处编辑请求的行为-谢谢:
编辑2
这让我抓狂,但我终于意识到——在jQuery的1.5.2版中,change
事件的事件处理程序在调用click()!!在以前的版本中并非如此
看这里:
... test-1.5.1.htm
... test-1.5.2.htm
有人能帮我报告这个错误吗?因为你使用的是复选框输入,你想要是(':checked')
而不是是(':selected')点击事件发生在值更改之前,因此它得到的是旧的值。单击的默认处理程序发生在单击事件之后,并切换该值。这就是为什么它会得到相反的值。我认为documentclick函数正在做一些wierd(我不相信它,我相信jQuery)
看看这把小提琴:我没看到你的代码。click()根据文档将处理程序绑定到鼠标单击事件。你也可以写:$('#foo').bind('click',function(){
警报('用户单击“foo.”);
});
如果要触发,请使用触发器()函数,如:$('foo').trigger('click')或document.getElementById('foo')。checked=true;当使用纯javascript时。jsfiddle用于编辑乐趣:感谢您向我展示jsfiddle,这太棒了:)此外,click事件发生在值更改之前,因此它得到了旧值,click
的默认处理程序发生并切换值是的,抱歉,这只是文章中的一个错误。看演示。正如我在下面写的,这怎么可能是实用的?当使用jQuery触发click事件与手动触发click事件时,相同的处理程序具有不同的环境!这是有趣的,但是,它是无用的,只要它是相反的方式时,实际上点击复选框与鼠标!有什么想法吗?在任何情况下,我都需要它在执行单击处理程序时具有相同的值。哦,你实际上更改了我的代码使其工作!谢谢现在我只需要理解.change()
和.click()
在应用于复选框时的真正区别。正如我在第一篇文章的编辑中所写,jQuery 1.5.2中存在一个(假定的)错误,当调用click方法时,会触发更改处理程序……它看起来像.change()中的。click()。change()
是解决这个问题的部分(我刚刚遇到了同样的问题)。这似乎是jQuery中的一个错误。.bind('click',function(){…})
相当于。click(function(){..})
和。trigger('click')
相当于。click()
。我不认为这个答案会有帮助。似乎jQuery的开发人员可以/应该将其结合到某种速记中。
$('input#someCheckbox').click(function() {
if ($(this).is(':checked')) {
// checked
} else {
// not checked
};
});