gpt4 book ai didi

javascript - 允许 dragstart-Event 而不会失去其他控件的焦点

转载 作者:行者123 更新时间:2023-11-28 00:54:53 25 4
gpt4 key购买 nike

我想在页面上实现一些可拖动的元素,这些元素不应该破坏页面上当前获得焦点的控件。这就是我的尝试:

$('input').focus();
$('div').on('mousedown', function(event) {
// event.preventDefault(); // drag does not work anymore
// $('input').focus(); // focus still lost
});
div {
display: inline-block;
border: 1px solid green;
padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div draggable="true">Hello World</div><br />
The input field should not loose focus, when dragging "Hello World".<br />
<input type="text" />

如果我激活 event.preventDefault(),焦点不会在 mousedown 上丢失,但拖动操作无法再开始。有谁知道如何解决这个问题?

最佳答案

我想,setTimeout 会解决您的问题

$('input').focus();
$('div').on('mousedown', function(event) {
window.setTimeout(
function() {
$('input').focus();
}, 1);
});
div {
display: inline-block;
border: 1px solid green;
padding: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div draggable="true">Hello World</div><br />
The input field should not loose focus, when dragging "Hello World".<br />
<input type="text" />

结果; enter image description here

jsfiddle

希望有所帮助,

关于javascript - 允许 dragstart-Event 而不会失去其他控件的焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45412276/

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