我有一个自动完成div,当用户键盘在搜索字段中时出现。我希望div在他们点击div之外时消失,所以我尝试了以下内容:
//SHOW THE DIV WHEN INPUT CLICKED
$('#searchbar').focus(function(){
$('#div').show();
});
//HIDE THE DIV WHEN FOCUS LOST
$('#searchbar').on("blur", function(){
$('#div').hide();
});
不幸的是,包含自动填充选项的div包含我希望用户点击的标签。一旦用户单击链接,div就会消失(因为输入字段的焦点丢失)。
那么有什么办法来组织'带有输入字段的div,因此它们都可以被聚焦在'当输入处于活动状态或单击div时?
问候,并提前感谢你!
编辑:这是我的HTML
<div class="appBar">
<table class="abTable">
<tr>
<td><b><a href="index.php"><span style="color:white;">gelDB</span></a></b></td>
<td><input id="sbar" type="text" name="searchBar" class="searchBar" placeholder="Search for entries..." /></td>
<td>
<a href="entry.php"><img class="navButton" alt="" src="images/btn_new.png" style="width: 50px; height: 50px" /></a>
<a href="browse.php"><img class="navButton" alt="" src="images/btn_browse.png" style="width: 50px; height: 50px" /></a>
<a href="protocols.php"><img class="navButton" alt="" src="images/btn_proto.png" style="width: 50px; height: 50px" /></a>
<img class="navButton" alt="" src="images/btn_permis.png" style="width: 50px; height: 50px" />
</td>
<td>
<button class="menuButton"></button>
</td>
</tr>
<div class="menuButtonDiv"></div>
</table>
</div>
</head>
<br/>
<body>
<div id="acd" class="autoCompleteDiv">No results. Try searching something else.<hr></div>
以下是我正在做的事情的图形示例:
答案 0 :(得分:1)
想出来,必须使用以下代码:
$('#sbar').on("blur", function(){
if ($('#acd').is(':hover')) {}
else{$('#acd').hide();};
});
除非鼠标当前在(悬停在)div上,否则它基本上会隐藏div。
答案 1 :(得分:0)
试试这个:
<div id="box">
<a href="#">link<a>
<div>
_
$( "body" ).click(function() {
// if the element that was clicked is #box OR any child of #box
if($(event.target).is( "#box, #box > *" )) {
} else {
alert("outside the box");
}
});