2011-08-19 82 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相關的問題 –