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イベントを追加します。最初の2つは正しく機能します。data-dismiss='modal'ただし、キャンセルボタン( )をクリックするか、画面上の他の場所をクリックしてボタンを閉じると、3番目のボタンはトリガーされません。

私が使用しているライブラリは次のとおりです: require.js、、。backbone.jsmarionette.js

クリックを使用するようにjsfiddleを修正しましたが、引き続き機能します:http: //jsfiddle.net/zj37u/

なぜ私のものが機能していないのか、またはどのようにデバッグできるのかについて誰かが提案を持っていますか?私はすでにいくつかのバリエーションを試しました。

4

1 に答える 1

13

hideポップオーバーでhidden聞くことができるイベントがあります。hideポップオーバーがフェードアウトし始め、hidden完了するときに発生します。

ポップオーバーリンクからマウスを離すたびに表示されるアラートの例を次に示します。

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 に答える