HTML选项仅在Safari中不会对onmousedown做出反应
HTML Option wont react to onmousedown ONLY in Safari
我有一个HTML选项元素,当它被选中时,我想执行一些操作。所以我让它对onmousedown事件做出了反应&使其对该事件执行操作。
我的问题:该代码仅适用于Firefox。在Safari中,事件从未被触发?代码永远不会执行。你知道为什么会发生这种事吗?也许我应该对不同的事件做出反应,比如oncelect或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>
如果您在列表框中单击某个选项(带有multiple="true"
的select),则onmousedown事件似乎只会被触发。当选项从"常规"选择下拉时,单击该选项似乎不会触发事件。
演示
也许我应该对不同的事件做出反应,比如oncelect或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
相关文章:
- 我的单元测试选项是什么
- 如何更改bigquery API中的计费层选项
- 使用Javascript获取所选选项ID
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 无法在Ionic select中预先选择最后一个选项
- 如何在选项卡上定义属性'的主窗口对象
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 使用此选项选择父类内部的类
- CKeditor:更改对话框中的默认选择选项
- JQuery覆盖不更改单选选项
- 活动选项卡's源代码-获取变量s值
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- 如何从选择框中的选项中获取属性值
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 如何从外部页面激活非默认引导选项卡
- HTML选项仅在Safari中不会对onmousedown做出反应