2012-01-08 29 views
1

我有一個HTML選項元素,當它被選中時,我想執行一些操作。所以我已經對這個事件做出反應,讓它對這個事件執行操作。HTML選項不會對Safari中的onmousedown做出反應

我的問題:該代碼僅適用於Firefox。在Safari中,事件從未被觸發?代碼從未執行。你知道爲什麼會發生這種情況嗎?也許我應該對不同的事件做出反應,比如onselect或onchange?

這是我正在做的一個簡單的例子(我在mousedown上執行了很多代碼,但在這裏它只是一個簡單的警告)。正如你所看到的,警報在Firefox中出現,但它並沒有在Safari上出於某種原因:

<html> 
<head> 
</head> 
<body> 
    <select> 
     <option id="a1">1</option> 
     <option id="a2">2</option> 
     <option id="a3">3</option> 
     <option id="a4">4</option> 
     <option id="a5">5</option> 
    </select> 
</body> 
    <script type="text/javascript"> 
    <!-- 
     document.getElementById("a1").addEventListener("mousedown", function(e) { alert("A"); return true; }, false); 
     document.getElementById("a2").addEventListener("mousedown", function(e) { alert("b"); }, false); 
     document.getElementById("a3").addEventListener("mousedown", function(e) { alert("c"); }, false); 
     document.getElementById("a4").addEventListener("mousedown", function(e) { alert("d"); }, false); 
     document.getElementById("a5").addEventListener("mousedown", function(e) { alert("e"); }, false); 
    --> 
    </script> 
</html> 

回答

2

它看起來像onmousedown事件的事件,如果你在一個listbox-點擊它僅觸發一個選項一個選擇multiple="true"。從「常規」選擇下拉選項時單擊該選項似乎不會觸發該事件。

Demo


也許我應該對不同的事件作出反應,如ONSELECT或的onchange?

,我會使用onchange事件:

<select id="sel"> 
    <option id="a1">1</option> 
    <option id="a2">2</option> 
    <option id="a3">3</option> 
    <option id="a4">4</option> 
    <option id="a5">5</option> 
</select> 

document.getElementById("sel").onchange = function(e) { alert(this.value); }; 

DEMO

相關問題