在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。