2011-08-19 77 views
1

我有一个下拉框我正在使用jQuery更改CSSjQuery和:之前CSS标签

我已经设置了一系列CSS类来使用。

我的CSS类的两个还含有:类

之前使用jQuery,如果我选择在框中使用的项目之一:选项之前,是没有问题的。

当我选择使用:before选项的其他CSS时,它在显示CSS时忽略:before部分。

如果我用:before选择CSS,然后选择一个不使用:before,然后切换到另一个,这很好,就是当我从一个CSS切换到另一个CSS之前搭配:前

了jQuery我使用改变CSS是这样的:

$("#colour").change(function() { 
     var str = ""; 
     $("select.col option:selected").each(function() { 
      str = $(this).val(); 
      }); 

      var currClass = $('#heading').attr('class'); 

      $('#heading').addClass(str); 
      $('#heading').removeClass(currClass); 

    }) 

难道我做错了什么,是造成这不加载:每次选择后过吗?

回答

1

each()逻辑看上去错误的,仅单个值的select.col的选项,正在使用。

更改代码:

$("#colour").change (function() { 
    $('#heading').removeClass(); //-- Clears all classes 

    $("select.col option:selected").each (function() { 
     var str = $(this).val(); 
     $('#heading').addClass (str); // Add desired classes back, one at a time. 
    }); 
}); 


其他,我们需要将相关的CSS和HTML,帮,带的任何其他问题 - 就像你提到的IE浏览器,只有行为。

0

替换

var currClass = $('#heading').attr('class'); 

      $('#heading').addClass(str); 
      $('#heading').removeClass(currClass); 

通过

$('#heading').removeClass().addClass(str); 
+0

谢谢你的帮助,不幸的是,这并没有帮助。 但是我发现了更多关于这个问题的信息。它只会影响IE8(在Firefox和Chrome上它很好)。 我还没有在IE9上检查它,但它似乎是与IE相关的问题 –