jquery - addClass 和removeClass 在 Internet Explorer 中不起作用

标签 jquery checkbox addclass removeclass

当我使用 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/

相关文章:

javascript - removeClass 设置显示无

数据表查找字符串并添加类

javascript - jquery ui resizable返回大小

jquery - 显示/隐藏菜单在 IE7 中不起作用

javascript - 如何在单击复选框时调用 2 个函数?

jQuery - 获取文本文件,读取它,然后将结果作为类添加到多个 div

javascript - 动态添加 dropzone.js div 元素到表单

javascript - 在浏览器上显示之前在后端预加载/刷新页面

html - 更改下拉菜单或复选框中的部分文本颜色

jQuery 复选框