【问题标题】:Cannot close bootstrap popover with a dynamic content on outside click - jquery无法在外部单击时关闭带有动态内容的引导弹出窗口 - jquery
【发布时间】:2018-12-27 01:18:07
【问题描述】:

我在这里有一个带有动态内容的弹出框,当我单击弹出框按钮时会显示该弹出框。当我还单击页面的另一个区域时,我想关闭它。但是,仅当我单击弹出框按钮时弹出框才会关闭。

<a class="btn btn-danger" id="btn-post" data-html="true" data-placement="bottom" data-original-title="Post/Lock">
    Post/Lock
</a>

我没有在我的 HTML 代码上设置 data-content。我在js上设置的

$("#btn-post").click(function() {
    $("#btn-post").attr("data-content", var_dynamic_content);
    $('#btn-post').popover('show');
});

我已经尝试按照这篇文章中回答的一些代码

How to dismiss a Twitter Bootstrap popover by clicking outside?

但似乎没有什么对我有用。

【问题讨论】:

    标签: jquery twitter-bootstrap popover


    【解决方案1】:

    此答案与您在问题中提到的答案确实相似...除了它适用于 Twitter-Bootstrap (Bootstrap 4)。

    区别好像是没有in类。

    我没有对所有用例进行测试...但是这个 sn-p 有效。

    $(document).ready(function(){
    
      var var_dynamic_content = "Hello!";
    
      $("#btn-post").click(function() {
        $("#btn-post").attr("data-content", var_dynamic_content);
        $('#btn-post').popover('show');
      });
    
      $(document).click(function(e){
        // If the click occurs on #button-post or the popover itself --> exit!
        if(e.target == $("#btn-post")[0] || $(e.target).parents(".popover").length > 0){return;}
        $('#btn-post').popover('hide');
      });
    
    });  // END ready
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
    
    <a class="btn btn-danger" id="btn-post" data-html="true" data-placement="bottom" data-original-title="Post/Lock">
        Post/Lock
    </a>

    CodePen

    【讨论】:

    • 你的答案是完美的。好在弹出框仅在外部单击时关闭,而不是按钮和弹出框本身,这正是我所需要的。
    【解决方案2】:

    试试这个代码:

    $('body').click(function() {
        $('#btn-post').popover('hide');
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      相关资源
      最近更新 更多