2010-10-08 56 views
0

我知道這可能是一個更好的方法,我嘗試了很多方法。我通常會做.hide().show(),但css顯示開關在FF上運行得更好,而不是在IE上。這裏是我的代碼不工作IE8如果選項值選擇開關css

$(".VariationSelect option[value='21']").click(function() { 
    $("#21").css("display", "block"); 
}); 
$(".VariationSelect option[value!='21']").click(function() { 
    $("#21").css("display", "none"); 
}); 

我試着開關的情況下,如果和else但沒有任何工程

<div class="Value"> 
    <select name="variation[1]" class="VariationSelect" style="width: 180px;"> 
     <option value="">Choose a Ring Size</option> 
     <option value="6">6</option> 
    <option value="7">7</option> 
    <option value="21">Custom</option> 
    </select> 
</div> 
<div id="21" style="margin-left:20px; float:left; display:none"> 
    <div class="Label" style="margin-top:5px; "> 
     Custom Size:&nbsp;&nbsp; 
    </div> 
</div> 

回答

0

是當你點擊IE瀏覽器中的「選項」之稱的點擊功能?我的猜測是點擊事件不會觸發IE中的選項元素。在選擇上改變(..)並測試該值。

下面是代碼:

$(".VariationSelect").change(function() { 
    if ($(this).val() == "21") { 
     $("#21").css("display", "block"); 
    } else { 
     $("#21").css("display", "none"); 
    } 
}); 
+0

嗚呼胡適的魅力c; – Alex 2010-10-08 17:33:20

0

首先,我不建議使用ID和類,以數字開頭。

jQuery的

$(".VariationSelect").change(function() { 
    if ($(this).val() == '21') { 
     $("#cont_21").show(); 
    } else { 
     $("#cont_21").hide(); 
    } 
}); 

HTML

<div id="cont_21" style="margin-left:20px; float:left; display:none"> 
    <div class="Label" style="margin-top:5px; "> 
     Custom Size:&nbsp;&nbsp; 
    </div> 
</div> 

JSFiddle Demo here

希望這會有所幫助!

+0

抱歉近乎重複的答案。當我開始寫它時,沒有發佈代碼:) – 2010-10-08 17:33:55

+0

是的隱藏節目會工作,謝謝! – Alex 2010-10-08 17:40:24

+0

我總是驚訝人們如何快速回答問題。在我寫完回覆時,有很多次,其他人已經回答了。 :-) – 2010-10-08 17:50:42