2013-06-05 2 views
0

Мне нужно вызвать функцию, когда я нажимаю на опцию выбора с выбором класса. Все отлично работает в Firefox, Internet Explorer и Opera, но не в Google Chrome.Выберите вариант не работает только 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

исправление кода: оберните «привет!» с кавычками или он выкинет ошибку. – 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

Cool Bro !! Неплохо :) –

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

Вы пытались выключить и снова включить его? :)

У меня была такая же проблема, и она была исправлена, когда я перезапустил хром.

Смежные вопросы