当我使用 jQuery 函数 addClass 和 removeClass 更改 Internet Explorer (IE) 中复选框的外观时,它们无法正常工作。但是,它们在其他浏览器中运行良好。
这里是示例代码来说明我的问题:
$('input:#chkbox').click(function()
{
//if($(this).is(":checked")){
if($('input:#chkbox').is(":checked"))
{
$('input:#chkbox').next("label").addClass("etykieta_wybrana");
}
else
{
$('input:#chkbox').next("label").removeClass("etykieta_wybrana");
}
});
要进一步测试这一点,您可以使用 jsFiddler 运行代码(在 IE 中不起作用): http://jsfiddle.net/tejek/pZJMd/
最佳答案
如果您希望它只与一个复选框(ID 为 chkbox)一起使用,您的选择器应该是 $('#chkbox')
,或者应该是$('input:checkbox')
如果您希望它适用于每个复选框。
此外,最好使用更改事件而不是单击事件,因为如果更改是通过鼠标单击以外的其他方式进行的,则单击事件(理论上)不应触发。
也许尝试这样的事情:
$('input:checkbox').change(function () {
var $this = $(this);
if( $this.is(':checked') ) {
$this.next('label').addClass('etykieta_wybrana');
} else {
$this.next('label').removeClass('etykieta_wybrana');
}
});
参见DEMO .
如果它没有帮助,那么尝试在 HTML 中手动添加和删除类,看看问题是否不是添加类,而是没有显示通过一些奇怪的怪癖模式渲染或其他方式添加类的效果。
确保您的 HTML 开头是这样的:
<!doctype html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge;chrome=1">
确保您始终能够充分利用 IE 渲染引擎。
关于jquery - addClass 和removeClass 在 Internet Explorer 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5257866/