2013-03-07 68 views
1

这只是在Firefox中工作,我找不到原因。点击每个浏览器中的橙色跨度。点击选择选项只适用于Firefox ...为什么?HTML,选择选项,与jquery点击只能在Firefox中工作

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
</head> 
<body> 

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

    <select> 
     <option class="click" value="">click</option> 
    </select> 

    <br /><br /><br /><br /> 


    <span class="click" style="display:inline-block;width:50px;height:20px;background-color:orange;padding:4px;">click</span> 

</body> 
</html> 

回答

2

你不能点击一个选择的选项,你可以选择捕捉的变化事件,这适用于所有的浏览器:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(document.getElementById("colors")).change(function() { 
      alert($(this).val()); 
     }); 
    }); 
</script> 

<select id="colors"> 
    <option value="click1">click2text</option> 
    <option value="click2">click2text</option> 
</select> 
+0

'选择#colors'是一个糟糕的选择,因为它破坏了正则表达式,它不使用'document.getElementById'无故决策。 – gdoron 2013-03-07 22:17:07

+0

感谢您的答案。在document.getElement ... edit之前,我喜欢这个。我将id =“”更改为类。谢谢 – caramba 2013-03-07 22:23:19

+0

'getElementById'因为我为什么改变了,效率要高得多,但是对于非复杂的应用程序'select#colors'会有效。 – Eldar 2013-03-07 22:24:20

1

onclick不是<option>标准的事件,这是不错,firefox补充说,但它没有在规范中定义。

您应该使用,而不是<select>的onchange`事件:

$(document).ready(function() { 
     $('select').change(function() { 
      if (this.value == "theValue") 
       alert("clicked"); 
     }); 
    }); 
+0

感谢您的回答,您的解释onclick,选项和Firefox规范是真棒,我dindt知道,我真的很感激(+1)$('select')没有立即工作 – caramba 2013-03-07 22:26:47

+0

@ caramba,好吧,这是一个片段...无论如何,接受的答案有问题,我认为你应该等到他修好。 – gdoron 2013-03-07 22:30:13

+0

好的,谢谢,那么我改变了Eldar这样的ID,它先上课了,好吗? – caramba 2013-03-07 22:31:57

相关问题