在弹出窗口之外单击时隐藏“隐藏程序弹出窗口”

时间:2018-09-01 12:35:56

标签: javascript jquery

对于引导程序弹出窗口,我具有以下设置。弹出页面在页面加载时出现,如果我单击弹出窗口,它就会消失。我真正想要的是,如果我在弹出式窗口之外单击,或者在下次单击时单击更好,它就会消失。关于如何进行这项工作的任何想法?

$('div').on('hide.bs.popover', function (e) {
        e.preventDefault();
    });

    $(document).ready(function() {
        $("div").popover("show");
    });



    $('body').on('click', '.popover', function () {
        $(this).hide();
    });
<div class="dropdown pull-right" data-toggle="popover" data-placement="left" data-content="Main menu" style="right: -2px; top: 3px;">

<a href="#" class="glyphicon glyphicon-th dropdown-toggle" data-toggle="dropdown" style="color: #317EAC; text-decoration: none !important; font-size: 22px;"></a>
</div>

3 个答案:

答案 0 :(得分:0)

根据文档: 使用焦点触发器可消除用户下一次单击时的弹出窗口。 因此请使用class Donald: ProtocolX, ProtocolY { var abHandler: ProtocolA & ProtocolB var aHandler: ProtocolA { return abHandler } // renamed in ProtocolX var bHandler: ProtocolB { return abHandler } // renamed in ProtocolY }

在下次单击时关闭所需的特定标记 为了实现正确的跨浏览器和跨平台行为,您必须使用标签而不是标签,并且还必须包括role =“ button”和tabindex属性。

data-trigger="focus"

答案 1 :(得分:0)

$('body').on('click', function (e) {
    $('[data-toggle=popover]').each(function () {
        // hide any open popovers when the anywhere else in the body is clicked
        if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {
            $(this).popover('hide');
        }
    });
});

答案 2 :(得分:0)

找到了解决方案:

$(document).ready(function() {
    $("div").popover("show");
});

$('body').on('click', function (e) {
    if ($(e.target).data('toggle') !== 'popover'
        && $(e.target).parents('.popover.in').length === 0) {
        $('[data-toggle="popover"]').popover('hide');
    }
});