7

我已经进行了一些搜索,但我只能将事件附加到导致它关闭的按钮上。

但是,当用户只是单击其他地方时,这并不能处理这种情况。我想触发一个事件,因为弹出框正在消失并被移除。有人有什么建议吗?

更新:我已经尝试了下面的答案,但无法让它工作,尽管它显然应该来自 jsfiddle 示例。我正在使用的库和设置可能存在一些冲突。

这是我正在使用的代码:

this.$el
    .popover({ 
        html: true, 
        title: 'Schedule an appointment', 
        content: '<div id="' + this.popoverView.cid + '" class="event-popover"></div>', 
        placement: placement
    })
    .popover('show')
    .on('hidden', function(e) {
        alert('hidden');
    });

它创建弹出框,显示它,然后添加on hidden事件。前两个工作正常。data-dismiss='modal'但是,当单击取消按钮 ( ) 或单击屏幕上的其他位置以关闭按钮时,第三个不会触发。

我正在使用的库是:require.js, backbone.js, marionette.js.

我已经修改了 jsfiddle 以使用 click 并且它仍然有效:http: //jsfiddle.net/zj37u/

有没有人对为什么我的可能无法工作或如何调试它有建议?我已经尝试了几种变体。

4

1 回答 1

13

您可以在弹出窗口上收听hideand事件。当弹出框开始消失并且完成时发生。hiddenhidehidden

以下是当您将鼠标从弹出链接移开时显示的警报示例:

HTML:

<a href="#" id="button"
        class="btn danger" 
        rel="popover" 
        data-original-title="title" 
        data-content="content">popover</a>

JS:

var $popover = $("a[rel=popover]").popover({
    trigger: "hover"
}).click(function(e) {
    e.preventDefault(); 
});

$popover.on("hidden", function(e) {
    alert("hidden");
});

也作为一个jsfiddle:http: //jsfiddle.net/Ny5Km/4/

更新:

对于引导版本 v3.3.5,请参阅 popover -events

$popover.on("hidden.bs.popover", function(e) {
    alert("hidden.bs.popover");
});
于 2013-03-05T08:15:04.053 回答