2016-12-16 8 views
1

addClass/removeClass CSSクラスはSiteClassと動的に呼び出されます(背景についてはthis questionを参照)。私はそうのように、これらにブートストラップポップオーバーをバインド:Boostrap - ポップオーバーは2回目のクリック後にのみ起動されます

$(document).ready(function(){ 

    $("#SiteList").on('click','a.SiteClass', function(e){ 
    alert('clicked'); 
    e.preventDefault(); 
    e.stopPropagation(); 
    var strcontent = $(this).html(); 
    var strTitle = 'Title for ' + strcontent; 
    var strMessage = 'Foo <b>Bar</b> Baz'; 

    $(this).popover({ 
     html: true, 
     title: strTitle, 
     content: strMessage 
    }); 
    }); 

}); 

初めて私は「クリック」私は警告ボックスを取得する]をクリックし、ないポップオーバー。後続のクリックとポップオーバーが機能します。

なぜこれが起こっているのか、クリック1からポップオーバーを発するための手掛かりはありますか?

+1

onclick関数の最後に '$(this).popover(" show ");を追加してみてください。 – elethan

+0

@elethanその行を追加すると初めて起動しますが、リンクを再度クリックしてポップオーバーを閉じることはできません。 –

+0

その場合、.onを閉じる前に '$(this).popover(" toggle ");' – elethan

答えて

1

$().popover(options)は、単にあなたのポップオーバーを初期化します。あなたは、代わりにクリックでポップオーバーを切り替える試してみたい場合は

$(this).popover('show'); 

:あなたはとポップオーバーの表示をトリガすることができます

$(this).popover('toggle'); 

私はそれだけで後の最初の作品の理由を考えます最初のクリックでポップオーバーがthe default trigger'click'で初期化され、それ以降のクリック(最初のクリックではない)がそれをトリガーするようにします。

+1

私はあなたのトグルの提案と一緒に魅力的に働く私のpopoverオプションに 'trigger:manual、'を追加しなければなりませんでした。ありがとう。 –

関連する問題