2013-03-07 92 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

相關問題