2013-06-05 67 views
0

我需要調用一個功能,當我點擊一個選擇類選擇的選項。一切工作正常在Firefox,Internet Explorer和Opera,但不是在谷歌瀏覽器。選擇選項無法使用Chrome

下面的代碼:

<fieldset class="suburbSelect"> 
    <label for="suburbSelect">Provincia</label> 
    <select class="suburbSelect"> 
     <option class="alessandria" value="Piemonte, Alessandria">Alessandria</option> 
     <option class="asti" value="Piemonte, Asti">Asti</option> 
     <option class="biella" value="Piemonte, Biella">Biella</option> 
     <option class="cuneo" value="Piemonte, Cuneo">Cuneo</option> 
     <option class="novara" value="Piemonte, Novara">Novara</option> 
     <option class="torino" value="Piemonte, Torino">Torino</option> 
     <option class="verbania" value="Piemonte, Verbano Cusio Ossola ">Verbano Cusio Ossola</option> 
     <option class="vercelli" value="Piemonte, Vercelli">Vercelli</option> 
    </select> 
</fieldset> 
jQuery(".alessandria").click(function(){ 
    alert(hello!); 
}); 
jQuery(".asti").click(function(){ 
    alert($(".asti").attr("class")); 
}); 

http://jsfiddle.net/all2aller/KqPCs/2/

我使用jQuery 1.9.1。

+0

爲什麼你需要這樣的 – PSR

+0

小小的代碼修正:換行「hello!」用引號或它會引發錯誤。 – BeNdErR

回答

0

這裏工作代碼和演示:

<script type='text/javascript' src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
    $(".suburbSelectElmnt").change(function() {   
     var activeClass = $(".suburbSelectElmnt option:selected").attr('class'); 
     switch (activeClass) { 
      case 'alessandria': 
      alert("hello!"); 
      break; 
      case 'asti': 
      alert(activeClass); 
      break; 
     } 
    }); 
}); 
</script> 
<fieldset class="suburbSelect"> 
    <label for="suburbSelect">Provincia</label> 
    <select class="suburbSelectElmnt"> 
     <option class="alessandria" value="Piemonte, Alessandria">Alessandria</option> 
     <option class="asti" value="Piemonte, Asti">Asti</option> 
     <option class="biella" value="Piemonte, Biella">Biella</option> 
     <option class="cuneo" value="Piemonte, Cuneo">Cuneo</option> 
     <option class="novara" value="Piemonte, Novara">Novara</option> 
     <option class="torino" value="Piemonte, Torino">Torino</option> 
     <option class="verbania" value="Piemonte, Verbano Cusio Ossola ">Verbano Cusio Ossola</option> 
     <option class="vercelli" value="Piemonte, Vercelli">Vercelli</option> 
    </select> 
</fieldset> 

Jsfiddle Code

+0

非常感謝你。但是我發現了另一種做我需要的方式,它似乎適用於所有瀏覽器。 http://jsfiddle.net/KqPCs/30/ –

+0

酷兄弟!好一個:) –

0

首先,你在這裏有一個錯字:

alert(hello!); 

它應該是:

alert("hello!"); 

其次,你的類的用法是在這種情況下,很奇怪的....你有每個選定選項的類別,這是檢查選擇框的值的一種非標準方式。

相反,你可以使用jQuery的變化()和Val()函數,就像這樣:

$(".suburbSelect").change(function() { 
    var val = $(this).val(); 

    if (val == "Piemonte, Alessandria") { 
     alert("hello!"); 
    } else if (val == "Piemonte, Asti") { 
     alert($(".asti").attr("class")); 
    } 
}); 

我因此在這裏更新您的jsfiddle:

http://jsfiddle.net/KqPCs/5/

0

您是否嘗試將其關閉並再次打開? :)

我有完全相同的問題,並得到修復,當我重新啓動鉻。