【发布时间】:2021-07-08 17:02:22
【问题描述】:
当输入字段处于焦点/模糊状态时,我可以使用以下代码显示/隐藏隐藏的 div:
$('#example').focus(function() {
$('div.example').css('display','block');
}).blur(function() {
$('div.example').fadeOut('medium');
});
问题是我希望div.example 在用户在此 div 中交互时继续可见。例如。单击或突出显示div.example 中的文本等。然而div.example 会在输入不在焦点上且鼠标与 div 中的元素交互时淡出。
input和div元素的html代码如下:
<p>
<label for="example">Text:</label>
<input id="example" name="example" type="text" maxlength="100" />
<div class="example">Some text...<br /><br />More text...</div>
</p>
如何使div.example 仅在用户单击输入和/或div.example 外部时消失?我尝试使用 focusin/focusout 来检查 <p> 上的焦点,但这也不起作用。
div.example 使用 jQuery 直接位于输入字段 #example 的下方是否重要?执行此操作的代码如下:
var fieldExample = $('#example');
$('div.example').css("position","absolute");
$('div.example').css("left", fieldExample.offset().left);
$('div.example').css("top", fieldExample.offset().top + fieldExample.outerHeight());
如果之前有人问过这个问题,我深表歉意,但我阅读的许多显示/隐藏 div 问题并未涵盖这一点。谢谢你的建议。 :)
【问题讨论】: