2016-12-16 8 views
1

I addClass/removeClass динамический динамический класс CSS SiteClass (см. this question для фона). Я связываю самозагрузки поповера к ним так:Boostrap - Popover только после второго нажатия

$(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 
    }); 
    }); 

}); 

В первый раз я нажмите кнопку Я получаю окно с предупреждением «щелкнул», но не поповера. Последующие клики и popover работают.

Любые подсказки относительно того, почему это происходит, и чтобы стрелка открыла огонь из щелчка 1?

+1

Попробуйте добавить '$ (this) .popover (" show ");' в конец вашей функции onclick. – elethan

+0

@elethan, когда я добавляю эту строку, она запускается в первый раз, но я не могу закрыть ее, снова щелкнув ссылку. –

+0

В этом случае попробуйте '$ (this) .popover (" toggle ");' – elethan

ответ

1

$().popover(options) просто инициализирует ваш popover. Вы можете вызвать отображение пирога с:

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

Если вы хотите, чтобы переключить поповер на клике вместо этого, попробуйте:

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

Я думаю, что причина, это работает только после первых щелкните в вашем случае, что при первом щелчке по умолчанию инициализируется the default trigger'click', так что последующие клики (но не первый щелчок) вызовут его.

+1

Мне пришлось добавить 'trigger: manual,' в мои параметры popover, который работает как шарм с вашим предложением переключения. Благодарю. –