Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery.addClass()完成了他的工作,但浏览器不重新绘制_Jquery_Css_Browser_Addclass_Repaint - Fatal编程技术网

JQuery.addClass()完成了他的工作,但浏览器不重新绘制

JQuery.addClass()完成了他的工作,但浏览器不重新绘制,jquery,css,browser,addclass,repaint,Jquery,Css,Browser,Addclass,Repaint,我知道这不是什么新鲜事,但我已经尝试了我找到的每一种补救方法,但没有解决问题 我有一些JQuery代码,通过动态分配一个类为div指定背景颜色,为h*指定颜色 css已正确加载并应用于所有内容 addClass方法正是我所期望的,使用Chrome的DevTools,我可以看到类被分配到了正确的元素 颜色不变 在样式检查器中,应用的新样式不会显示任何内容 如果我尝试这样的事情 $.fn.redraw = function(){ return $(this).each(

我知道这不是什么新鲜事,但我已经尝试了我找到的每一种补救方法,但没有解决问题

我有一些JQuery代码,通过动态分配一个类为div指定背景颜色,为h*指定颜色

  • css已正确加载并应用于所有内容
  • addClass方法正是我所期望的,使用Chrome的DevTools,我可以看到类被分配到了正确的元素
  • 颜色不变
  • 在样式检查器中,应用的新样式不会显示任何内容
  • 如果我尝试这样的事情

    $.fn.redraw = function(){
         return $(this).each(
             function(){ 
                 var redraw = this.offsetHeight; 
             }
         );
    };
    
    以这种方式在末尾调用它

    $(selector).redraw();
    
    不起作用

  • FF/Chrome的行为相同

  • 如果我更改代码,使用.attr(“style”,value)而不是.addClass来指定内联样式,它就可以工作了! 但是我不喜欢这个解决方案,我更喜欢避免使用外部CSS的硬代码内联样式


    有人有什么建议吗?两天来,我一直在努力猜测正确的步骤…

    我记得我遇到了同样的问题,我相信我解决了这个问题:

     $(this).removeClass("old_class");
     $(this).css({ 'background-color' : '' });
     $(this).addClass("new_class");
    

    首先删除旧类,然后将“背景色”设置为“无”,最后添加新类。

    您可以发布链接/jsfiddle吗?看到你正在谈论的代码,很难提出建议选项(例如,你提到了添加类的代码以及与该类相关的css样式,但是没有,只是一些你不需要的代码)检查css文件,这些文件是否正确加载?试试看!css类中用于后台属性的重要关键字。@saqibahmad我希望您的意思是使用!对于测试它是否工作很重要,以查看是否有其他内容正在覆盖它?而不是作为解决方案只是猜测一下:您可能在上面定义此类样式的CSS中有语法错误。CSS解析器可能会放弃这个错误,但仍然应用上面定义的样式。不,没有效果。可能与在运行时加载CSS的内容有关的事实?检查并做出您认为有用的更改来理解您的情况。谢谢,事实上我就是这么做的,但是颜色还是一样的。如果我内联添加颜色,就可以了,如果我添加一个类,在前端什么都不发生,而在后端添加这个类。。。