首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在Chrome中,当在mousedown处理程序中添加输入时,它会被聚焦?

为什么在Chrome中,当在mousedown处理程序中添加输入时,它会被聚焦?
EN

Stack Overflow用户
提问于 2019-07-29 18:11:23
回答 1查看 27关注 0票数 0

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

代码语言:javascript
运行
复制
var container = document.querySelector(".container");
var targ = document.querySelector("#target");

targ.addEventListener("mousedown", (e) => {
  var input = document.createElement("input");
  container.appendChild(input, targ);
});
代码语言:javascript
运行
复制
.container {
  position: relative;
}

.container>* {
  position: absolute;
}

#target {
  margin: 10px;
}

.container>input {
  height: 50px;
}
代码语言:javascript
运行
复制
<div class="container">
  <div id="target">Click here!</div>
</div>

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-29 18:14:33

这是因为当鼠标指针位于新添加的输入字段上时,mousemove事件会将其聚焦。请注意,当您按住鼠标按钮但没有移动鼠标和释放鼠标按钮而没有任何移动时,输入不会被聚焦。如果你没有这样稳定的手,试着在笔记本电脑上用触摸板点击;)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57251596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档