如何通过页面上的任何其他位置点击关闭Twitter Bootstrap弹出框?

156

我目前正在使用 Twitter Bootstrap 中的弹出窗口,可以通过以下方式初始化:

$('.popup-marker').popover({
        html: true,
        trigger: 'manual'
    }).click(function(e) {
        $(this).popover('toggle');
        e.preventDefault();
    });

如您所见,它们是手动触发的,单击.popup-marker(这是带有背景图像的div)会切换弹出框。这很好用,但我希望还能够通过单击页面上其他任何地方(但不是弹出框本身!)来关闭弹出框。

我尝试了几种不同的方法,包括以下方法,但没有结果可以展示:

$('body').click(function(e) {
    $('.popup-marker').popover('hide');
});

如何使弹出框在页面的任意其他位置单击时关闭,但不是在弹出框本身上单击?


嗯,我认为那应该可以运行...你有可能有在线链接吗? - thatryan
31个回答

-3
jQuery(':not(.popup-marker)').once().click(function(){
   jQuery('.popup-marker').hide(); 
});

你能提供一个JSFiddle示例吗?我无法让你的例子运行起来...谢谢。 - Houman
2
所以,呃...不要太苛刻,但这是一个糟糕的解决方案。首先:它将事件监听器绑定到页面中的每个元素。第二:它没有调用.popover('hide')方法,这可能会导致意想不到的事情发生。第三:它只能工作一次。 - David Wolever

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接