我的代码当前遇到问题。我有一个表单,其中包含多个复选框。如果您单击框本身或其中的标签,这些复选框就会打开。如果单击,则会显示另一个 div cancel_body。这显示了与表单结果并不真正相关的选项列表,只是为了向用户显示信息。我的问题是在 IE 中它不能按预期工作。您可以单击复选框,它会打勾,但没有任何显示。多点击几次就会显示。我无法辨认出任何模式。有谁知道为什么会发生这种情况?
谢谢!
$('input[type=checkbox]').change(function () {
if ($(this).attr("checked")) {
$(this).parent().next(".cancel_body").show(600);
}else{
$(this).parent().next(".cancel_body").hide(600);
};
});
最佳答案
对于 bool 值,您应该使用 prop()
而不是 attr()
:
if ( $(this).prop("checked") )
...
如果元素上不存在 checked
属性,并且 “checked”
,attr()
将返回 undefined
code> 如果存在,无论它设置为 true 还是 false:http://jsfiddle.net/yz4K6/
但是,正如 Barmar 在评论中提到的,您可以简单地使用 this.checked
代替:
if ( this.checked )
...
关于Javascript/Jquery Internet Explorer 在点击时显示 div 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21705589/