当我将一个函数绑定到一个复选框元素时,比如:
$("#myCheckbox").click( function() {
alert($(this).is(":checked"));
});
checkbox在触发事件之前更改其选中的属性,这是正常行为,并提供相反的结果。
然而,当我这样做的时候:
$("#myCheckbox").click();
在触发事件后,该复选框会将其更改为 attribute 。
我的问题是,有没有一种方法可以像普通的点击一样从jQuery触发点击事件(第一种情况)?
PS:我已经用过trigger('click')
了;
发布于 2010-04-18 06:56:43
$('#myCheckbox').change(function () {
if ($(this).prop("checked")) {
// checked
return;
}
// not checked
});
注意:在旧版本的jquery中,使用attr
是可以的。读取状态的Now it's suggested to use prop
。
发布于 2010-04-18 07:06:50
发布于 2016-06-13 17:05:43
截至2016年6月(使用jquery 2.1.4),其他建议的解决方案都不起作用。检查attr('checked')
总是返回undefined
,检查is('checked)
总是返回false
。
只需使用prop方法:
$("#checkbox").change(function(e) {
if ($(this).prop('checked')){
console.log('checked');
}
});
https://stackoverflow.com/questions/2660323
复制相似问题