$(documentin).on( 'focusin')を追加します。 show.bs.popoverが起動されたときに限ります。 http://codepen.io/anon/pen/GrWzNg?editors=11112つのjquery "on"イベントが重複しています
$('[data-toggle="popover"]').popover()
$(document).on('show.bs.popover', function(e) {
var popoverOpened = $(e.target);
$(document).on('focusin', function(e) {
popoverOpened.popover("hide");
});
});
また、私は別のボタンに焦点を当てた場合、以前に開いたポップオーバーを閉じる必要があります。
ここで確認できます。このコードの問題は、ボタンを数回クリックした後にコンソールログを複製したことです。
console.logを1回だけ起動できるようにします。
偶数show.bs.popoverが起動されていない場合、イベントのフォーカスをすべてに追加したくないのですが...とにかくこれを行うには?
より良いただ一つのイベントハンドラを持つクラスを追加し、私はあなたがここで達成しようとしているのかを理解するのに苦労してる他の – empiric
のセレクターを変更します。ポップオーバーを表示すると、ポップオーバーを非表示にするイベントハンドラが追加されます。このボタンをクリックすると、ドキュメントに注目しているため、すぐにトリガされます。 –
私が達成しようとしているのは、別のボタンにフォーカスしたときに以前に開いたポップオーバーを隠していることです。 最初のポップオーバーを開いて2番目のボタンにフォーカスすると、最初のポップオーバーは非表示になります... var popoverOpened – Stephen