jquery:选项加上类并单击

时间:2011-02-22 14:29:35

标签: jquery

为什么这只适用于Firefox?如何在所有浏览器中使用它?

<script type="text/javascript">
$(document).ready(function(){   
    $(".radio_c").click(function(){
        alert('message');
    });
}); 
</script>

<select name = "list1">
    <option value="dog">dog</option>
    <option value="cat">cat</option>
    <option class="radio_c" value="car_bmw">bmw</option>
    <option class="radio_c" value="car_audi">audi</option>
</select>

4 个答案:

答案 0 :(得分:6)

正如其他人所说,您希望将事件绑定到下拉列表并进行更改。从那里,您可以检查所选元素并按此处理。

$("select").change(function() {
    if ($(this).find(":selected").hasClass("radio_c")) {
        $("ul").append("<li>Selected: " + $(this).find(":selected").val() + "</li>");
    }
});

jsfiddle上的示例。

答案 1 :(得分:1)

无法点击选项。只能单击选择。选项是内部的东西。它不能附加DOM-stuff,因此无法禁用/启用它。如果要禁用一个,则需要将其从DOM中删除。它不像'普通'html元素。

答案 2 :(得分:1)

我认为您正在寻找change()而非click(),如下所示:

$("select").change(function() {
  if($(':selected', this).hasClass('radio_c')) {
    alert('message');
  }
}

答案 3 :(得分:0)

您无法将事件附加到选项标记。您可以将change()事件附加到选择中,只要您选择一个选项,就会触发该事件。

$(document).ready(function(){
  $('select[name="list1"]').change(function(){
    if($('option:selected', this).hasClass('radio_c')){
      alert($(this).val());
    }
  });
});