gpt4 book ai didi

javascript - 为什么在 Chrome 中,当在 mousedown 处理程序中附加输入时,它会获得焦点?

转载 作者:行者123 更新时间:2023-12-02 23:13:21 26 4
gpt4 key购买 nike

当输入字段在 mousedown 事件中添加到文档并位于被单击元素的顶部时,有时它会获得焦点。

var container = document.querySelector(".container");
var targ = document.querySelector("#target");

targ.addEventListener("mousedown", (e) => {
var input = document.createElement("input");
container.appendChild(input, targ);
});
.container {
position: relative;
}

.container>* {
position: absolute;
}

#target {
margin: 10px;
}

.container>input {
height: 50px;
}
<div class="container">
<div id="target">Click here!</div>
</div>

这是一支笔:https://codepen.io/motz-art/pen/jgyYoY

为什么会发生这种情况?为什么这种情况并不总是发生?

Chrome 版本 75.0.3770.142(官方版本)(32 位)

最佳答案

这是因为当鼠标指针悬停在新添加的输入字段上时,mousemove 事件会将其聚焦。请注意,当您按住鼠标按钮但不移动鼠标并在没有任何移动的情况下释放鼠标按钮时,输入不会获得焦点。如果您的手没有那么稳定,请尝试使用笔记本电脑中的触摸板进行点击;)

解决方案是捕获 clickmouseup 事件而不是 mousedown

关于javascript - 为什么在 Chrome 中,当在 mousedown 处理程序中附加输入时,它会获得焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57251596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com