代码之家  ›  专栏  ›  技术社区  ›  Dr. Hans-Peter Störr

如何捕获在焦点更改时隐藏的临时层上的链接上的单击

  •  2
  • Dr. Hans-Peter Störr  · 技术社区  · 15 年前

    我们有一个层,当某个文本输入有焦点时出现,当输入失去焦点时应该消失。我试着这样做:

    <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,而不是在鼠标光标位于其中时关闭它,但这看起来很复杂。你有更好的主意吗?

    顺便说一下:你可以把这个粘贴到 Tryit Editor W3学校。-)

    1 回复  |  直到 15 年前
        1
  •  2
  •   MiKo    15 年前

    首先想到的解决方案是使用 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();" />
    
    推荐文章