javascript - 单击屏幕上的任意位置时如何隐藏特定的 div

标签 javascript jquery html css

我有一个搜索结果 div,其中包含根据用户搜索的搜索结果列表项。但我想在用户单击屏幕上的任何位置时隐藏该结果 div。

这是我的搜索 div 代码:

<div id="user_search">
    <div class="inpt-head-place" style="width:9em;">
        <?php echo form_open( '',[ 'class'=>' navbar-left navbar-change','id'=>'search_form']) ?>
        <?php echo form_input([ 'type'=>'text','class'=>'form-control form-media search_user_bar','placeholder'=>'Search Here','name'=>'search']); ?>
    <div id="search_result" class="search_result"> </div>

    </div>
    <div class="inpt-head-place" style="width: 20px;">
        <button class="btn btn-default btn-resize" type="submit" name="submit" id="submit_here"> <i class="fa fa-search"></i> </button>
        <?php echo form_close(); ?>
    </div>
</div>

这是带有结果的搜索栏快照:

And here is a Snap of search Bar with their results

请建议我..谢谢

最佳答案

您可以通过将点击绑定(bind)到 documentbody 来检查被点击的元素或任何子元素是否是被点击的元素或被点击元素的子元素:

$(document).on('click', function(e) {
  if (!$('#search_result').is(e.target) && $('#search_result').has(e.target).length === 0){
    $('#search_result').hide();
  }
});

关于javascript - 单击屏幕上的任意位置时如何隐藏特定的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228864/

相关文章:

javascript - Controller 内的变量未解析为由 Promise 解析的数据

jquery - 对话框 hide() 和 show() -- Jquery?

javascript - 如何在按下回车键后提交搜索字段

php - Javascript - 不确定我的 AJAX 是否正确,没有错误,但没有数据库条目

php - 预填写表格(无法控制表格代码)

javascript - 使用 extend.js 有什么好处?

javascript - 使用 AJAX 时表单数据未发布到 Controller

javascript - 如何使用 js 或 jquery 在单击时突出显示 html 表中的列?

javascript - 使用传单将边界图层添加到离线 map

html - 用省略号隐藏列溢出,缩小其他列以适合内容,不设置任何表格/列宽度,并扩展表格以适合 div