1

ブートストラップ v2.2.2 を使用しています。他のいくつかの方法を試しました(つまり、ポップオーバーの外側でポップオーバーを閉じますが、内側は開いたままにし、外側をクリックして Twitter Bootstrap ポップオーバーを閉じる方法は? Boot strapX クリックオーバー プラグインも試しました: https://stackoverflow.com/a/11029479/ 104381​​7 ) しかし、これらの方法で動作させることはできません。

私は自分のページでコードを使用している方法で JSFiddle を作成しました: http://jsfiddle.net/FYNLL/ (私は v2.2.2 を使用していますが、JSFiddle は v2.0.2 から JS を使用しています。これらのバージョンにはいくつかの違いがあります. v2.2.2 をローカルで使用すると、リンクをクリックするまでポップオーバーが表示されません. JSFiddle では、ホバーすると表示されます. 明確にするために、リンクの後に表示したいホバーではなく、クリックされました)

私が達成しようとしているのは、ポップオーバーの外側の領域がクリックされるたびにポップオーバーを非表示にすることです。別のポップオーバー リンクがクリックされた場合、最初のポップオーバーを閉じて、クリックされているものを開きたいと思います。

また、これは絶対に必要というわけではありませんがpopover、.js ファイルにあると作業できません (使用してみました.each())。<script> $(function () { $("a[rel=popover]").popover(); });</script>HTML ファイルから削除したいのですが。繰り返しますが、これは実際には優先事項ではありません。

4

3 に答える 3

7
// Universal Popupover Outside Click Close Method :)
jQuery(document).mouseup(function(e){ 
    var popocontainer = jQuery(".popover");
    if (popocontainer.has(e.target).length === 0){
        jQuery('.popover').toggleClass('in').remove();
    }
});
于 2013-05-09T07:07:18.483 に答える
0

ドキュメントにバブルアップするクリック イベントをリッスンし、ターゲットがポップオーバー内にあるかどうかを判断します。そうでない場合は、非表示にします。

var popover = $('#someEl').popover(options);

$(document).on('click',function(e) {
   var src = $(e.target);

   if(src.hasClass('popover') || src.closest('popover').length) {
     $('#someEl').popover('hide');
   }
});
于 2013-01-08T00:07:38.107 に答える
-1

ソリューションはすべて API で提供されます。 http://twitter.github.com/bootstrap/javascript.html#popovers

options/triggerメソッドを見てください:.popover('hide')

readyスクリプト ファイルから実行しないことに関しては、コードがハンドラーにラップされていて、スクリプト ファイルが bootstrap.js の後に読み込まれる場合、実行しない理由はありません。ブラウザ コンソールを使用してエラーを確認する

于 2013-01-08T00:01:43.307 に答える