我的建议是,输入元素有一个onblur和onfocus事件,它会切换对象的draggable属性.这是我的测试代码对我有用:
#dragObject{background-color: grey; padding: 80px 20px; width: 175px;}
function entering(){
document.getElementById('dragObject').setAttribute("draggable", "false");
}
function leaving(){
document.getElementById('dragObject').setAttribute("draggable", "true");
}
使用此解决方案,您的可拖动div必须大于输入,因为必须有一个位置,您可以在模糊输入时单击以进行拖动.虽然这甚至不应该是一个缺点,但从UX的角度来看,你至少需要一个标签或图标或东西来抓住.否则你就必须开始做一些奇怪的事情,比如“如果你点击并按住一秒或更长时间,你就打算拖动,否则你将会选择文字”.哪个,可以从代码视图中进行,但可能是一个糟糕的用户界面选择.