ホバートリガーでポップオーバーを表示するとうまくいきます。
クリックトリガーでポップオーバーを表示するとうまくいきます。
さて、トリガー画像がホバーされたときにポップオーバーを表示する方法はありますが、ユーザーが画像をクリックすると、ホバーをキャンセルしてクリックトグルを開始しますか? つまり、ホバリングするとポップオーバーが表示され、クリックするとポップオーバーが「固定」されます。
HTML はかなり標準的です。
<li>User<span class="glyphicon glyphicon-user" rel="popover" data-trigger="click" data-container="body" data-placement="auto left" data-content="Body Text" data-original-title="Title Text"></span></li>
そして、さらに退屈なポップオーバーの初期化:
$(function () {
$("[rel=popover]").popover();
});
私がこれまで見てきたことから、解決策はpopover('show')
、popover('hide')
、およびpopover('toggle')
呼び出しの複雑なセットである可能性が高いようですが、私の javascript / jQuery-foo はそのタスクに対応していません。
編集:
@hajpoj さんから提供されたコードをベースに、イベントをリッスンしてhidden.bs.popover
、クリック イベントをトリガーした後に mouseenter および mouseleave イベントを再度有効にしようとする関数を追加しましたが、「ホバー」は再び機能しますが、クリックを殺します...
var $btn2 = $('#btn2');
var enterShow = function() {
$btn2.popover('show');
};
var exitHide = function() {
$btn2.popover('hide');
}
$btn2.popover({trigger: 'manual'})
.on('mouseenter', enterShow)
.on('mouseleave', exitHide)
.one('click', function() {
$btn2.off('mouseenter', enterShow)
.off('mouseleave', exitHide)
.on('click', function() {
$btn2.popover('toggle');
});
});
$('#btn2').on('hidden.bs.popover', function () {
$btn2.on('mouseenter', enterShow)
.on('mouseleave', exitHide)
});