0

当我单击带有类选项的选择选项时,我需要调用一个函数。在 Firefox、Internet Explorer 和 Opera 上一切正常,但在 Google 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。

4

3 回答 3

0

首先,你这里有一个错字:

    alert(hello!);

它应该是:

    alert("hello!");

其次,在这种情况下,您对类的使用很奇怪......您为每个选定的选项都有一个类,这是检查选择框值的一种非标准方式。

相反,您可以使用 jQuery 的 change() 和 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/

于 2013-06-05T09:10:36.450 回答
0

你试过把它关掉再打开吗?:)

我有完全相同的问题,当我重新启动 chrome 时它得到了修复。

于 2014-02-05T10:37:49.683 回答
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 代码

于 2013-06-05T10:24:05.680 回答