【问题标题】:Retain visibility of Div when input has focus当输入有焦点时保持 Div 的可见性
【发布时间】:2014-01-12 03:48:21
【问题描述】:

我有一个a,当它悬停时,会在其中显示一个div。在div 里面是一个input(type="text")。当用户将鼠标悬停在 a 上时,该 div 仍然可见。但是,问题是当他们在input 字段中键入时,如果鼠标不在adiv 上,div 将被隐藏,input 将停止接收输入。

我如何设置它,以便只要 input 具有焦点,div 将保持可见?

这里是a fiddle,它解释得更好。

【问题讨论】:

  • 邮政编码也请在这里
  • 您可以在输入上使用焦点状态,在 css 中它的可能性很小jsfiddle.net/7TS62/1
  • @GCyrillus,这似乎可行,但是如何将其调整为更复杂的结构呢? jsfiddle.net/7TS62/2
  • Jack Zelig 的答案是你的提示,请改用 add/remove classname :) CSS 是有限的,不适合这个

标签: javascript jquery html css focus


【解决方案1】:

这样做:

<a>
    <div class="hidden">
        <input type="text" />
    </div>
</a>

$("input")
.on("focus", function(){
    $("div").removeClass("hidden");
})
.on("blur", function(){
    $("div").addClass("hidden");
});

fiddle

编辑

input:focus 解决方案更简洁,除了它在 IE7 或更低版本中不起作用(希望与您无关)。

【讨论】:

  • 您的解决方案很好,但您应该使用添加/删除类名,因为在模糊之后,display:none 可能会覆盖 :hover css 规则并且在刷新页面之前永远不会再次显示
  • 这个解决方案非常适合我更复杂的结构。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-03-08
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
相关资源
最近更新 更多