gpt4 book ai didi

javascript - 为什么我的输入标签在获取后立即失去焦点?

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

根据设计,当输入获得焦点时,菜单容器 onblur 事件应该被禁用,当输入失去焦点时(即当用户完成输入时),应该重新启用它。

function pauseHiding(hiderId) {
var hider = document.getElementById(hiderId);
hider.onblur = null;
}

function resumeHiding(hiderId, timeout) {
var hider = document.getElementById(hiderId);
hider.onblur = "setTimeout(function(){hideMenu(hiderId);}, timeout);";
hider.focus();
}

事实上,input 的 onfocus 事件正常触发,但紧随其后的是 onblur 事件。此外,onfocus 会删除菜单容器的 onblur 事件,但 input 的 onblur 不会将其返回。 https://jsfiddle.net/2dxre6nz/4/

最佳答案

在您的 showMenu() 函数中,您必须删除 focus() 使用

function showMenu(containerId) {
var el = document.getElementById(containerId);
var setVisible = function(element){
if (element.tagName == 'A') element.style.display = 'inline';
else
if (element.tagName != 'SCRIPT' && element.tagName != 'STYLE') element.style.display = 'block';
};
iterateChildren(el, setVisible);
//el.focus();
}

您在主 div 中设置了 onclick="showMenu('userbody')",因此每次点击都会改变您的焦点

关于javascript - 为什么我的输入标签在获取后立即失去焦点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31809806/

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