我无法在搜索中找到答案。
使用javascript我有一个带有onclick事件的div(ac),其中一部分是将焦点设置为先前隐藏的div(as)中的输入元素(gn)。
我希望这可行:
ac.onmousedown = function () {
csect.style.display = "none";
as.style.display = "block";
gn.focus();
}
但没有,所以我加了小延迟
ac.onmousedown = function () {
csect.style.display = "none";
as.style.display = "block";
setTimeout(function(){
gn.focus()
},30);
}
这使它工作。
这种延迟真的有必要吗?我错过了什么吗?
感谢您的帮助。
答案 0 :(得分:3)
mousedown 事件处理程序触发后,点击的默认操作(将焦点设置为您单击的内容)发生。这意味着JavaScript将焦点设置为gn
,然后点击ac
的正常行为将焦点设置为ac
。
请参阅this example进行演示。
使用点击事件而非 mousedown 事件。