我们有一个图层,当某个文本输入具有焦点时会出现,而在输入失去焦点时应该会消失。我试图这样做:
<input type="text" onblur="document.getElementById('hideme').style.display='none'" />
<div id="hideme">Textextext <a href="http://disney.com/">disney</a> text</div>
我的问题是:当用户单击链接链接时,浏览器没有遵循该链接。在浏览器检查点击位置之前,该层似乎消失了。我在这里可以做什么?
一种想法是观察鼠标是否进入hideme div,而不是在鼠标光标位于其中时关闭它,但这似乎很复杂。你有更好的主意吗?
顺便说一句:将其粘贴到w3schools的Tryit Editor中,可以非常轻松地进行尝试。 :-)
最佳答案
我想到的第一个解决方案是使用setTimeout
函数:
<input type="text" onblur="setTimeout('document.getElementById(\'hideme\').style.display=\'none\'', 100)" />
不用斜杠:
function hidemeWithDelay() {
setTimeout("document.getElementById('hideme').style.display='none'", 100);
}
<input type="text" onblur="javascript:hidemeWithDelay();" />