Twitter Bootstrap上的Click监听器.popover类没有触发Event.StopPropagation

时间:2013-08-15 21:41:53

标签: jquery twitter-bootstrap

我在一组Twitter Bootstrap Popovers上使用以下代码,以确保一次只能打开一个popover,并且在popover外部单击将其关闭。点击里面一个弹出框应该关闭弹出窗口,确保弹出窗口内的任何表单元素都可以有效使用。

我的解决方案基于StackOverflow问题How do I detect a click outside an element?

这个已接受的答案

它几乎完美无缺,除了在弹出窗口内单击仍然关闭弹出窗口。 StopPropagation不会从.popover类的单击侦听器中触发。

检查弹出窗口显示他们确实有类.popover,那么为什么听众没有拿起点击?

HTML:

<a href="#" class="linkPopover">Popover One</a>
<a href="#" class="linkPopover">Popover Two</a>

脚本:

$(document).click(function() {
    $('.linkPopover').popover('hide');
});

$('.popover').click(function(e) {
    e.stopPropagation(); // code inside this listener is not being fired
});

$('.linkPopover').click(function() {
    $('.linkPopover').not(this).popover('hide');
});

$('.linkPopover')
    .popover({
        content: 'test'
    })
    .click(function(e) {
        e.stopPropagation();
    });

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我觉得这很有帮助。

Attach event handler to button in twitter bootstrap popover

看起来很hacky,我正在尝试找到一种解决方法,但现在它的效果还不错。