MS Edge浏览器无法同时呈现JS'onmousedown'和'onclick'

时间:2016-07-18 19:49:11

标签: javascript javascript-events html-select microsoft-edge

在JavaScript中,'onmousedown'与'onclick'结合使用时会破坏Microsoft Edge中的'onclick'事件。

'onmousedown'事件在'onclick'之前执行,并在Firefox,Chrome甚至IE11中按预期工作。

问题: 为什么这个简单的jsFiddle example在Microsoft Edge中没有正确呈现?

通过鼠标更改HTML“选择”的功能将丢失。用户仍然可以使用箭头键更改选项,并且没有错误消息写入控制台日志。

类似的帖子建议添加“.focus()”,但即使这个设计也无法纠正这个特定的问题。

document.getElementById("lyrList").onclick = function(){
    var selectedField = document.getElementById("lyrList");
    selectedField.options[selectedField.selectedIndex].style.color = "red";
} 

document.getElementById("lyrList").onmousedown= function(){
    var selectedField = document.getElementById("lyrList");
    selectedField.options[selectedField.selectedIndex].style.color = "blue";
} 

编辑更新:

有两个错误;

1st:将“onclick”更改为“onchange”允许select在Edge中打开。

第二。通过JS( .style.color )或jQuery( .options.item(i))动态设置颜色.css('color','red');阻止用户更改选择框的值。 (微软知道这个错误)

尝试事件监听器作为不成功解决此错误的手段。 为后代更新了jsFiddle

0 个答案:

没有答案