2014-01-11 56 views
0

我有一个a,当它悬停时,在其中显示一个div。里面那div是一个input(type="text")。当用户悬停在a上时,div仍然可见。但是,问题是当他们键入input字段时,如果鼠标未在adiv上,则div将变为隐藏状态,并且input停止接收输入。当输入具有焦点时,保留Div的可见性

我怎样才能设置它,以便只要input有焦点,div将保持可见?

这是a fiddle,它解释了它好一点。

+0

此处的邮政编码也请 – Phlume

+4

你可以在输入上使用焦点状态,在css中它的功能可能http://jsfiddle.net/7TS62/1/ –

+0

@GCyrillus,这似乎工作,但如何适应它一个更复杂的结构? http://jsfiddle.net/7TS62/2/ –

回答

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或以下工作(这对你来说有希望无关紧要)。

+1

你的解决方案是好的,但你应该使用添加/删除classname,造成模糊后,显示:none可能会覆盖:hover css规则,并且永不再显示直到页面刷新 –

+1

好点。我已经更新了我的答案。 –

+0

该解决方案适用于我更复杂的结构。谢谢! –

相关问题