Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML选项仅在Safari中不会对onmousedown作出反应_Javascript_Html_Safari_Webkit - Fatal编程技术网

Javascript HTML选项仅在Safari中不会对onmousedown作出反应

Javascript HTML选项仅在Safari中不会对onmousedown作出反应,javascript,html,safari,webkit,Javascript,Html,Safari,Webkit,我有一个HTML选项元素,当它被选中时,我想执行一些操作。所以我让它对onmousedown事件做出反应&让它对该事件执行操作 我的问题:代码只在Firefox中有效。在Safari中,事件从未触发?代码永远不会执行。你知道为什么会这样吗?也许我应该对不同的事件做出反应,比如onselect或onchange 这是我正在做的一个简单的例子(我在mousedown上执行了很多代码,但这里只是一个简单的提示)。正如您将看到的,该警报出现在Firefox中,但由于某些原因在Safari上不起作用: &

我有一个HTML选项元素,当它被选中时,我想执行一些操作。所以我让它对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>

1.
2.
3.
4.
5.

看起来只有在列表框中单击某个选项时才会触发onmousedown事件,即使用
multiple=“true”
进行选择。当该选项从“常规”选择下拉时,单击该选项似乎不会触发该事件


也许我应该对不同的事件做出反应,比如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); };

1.
2.
3.
4.
5.
document.getElementById(“sel”).onchange=函数(e){alert(this.value);};