Bootstrap 3 Popover: affichage sur hover ET sur click, aka. Épingler un popover

Faire une liste apparaît avec les passez déclencheur fonctionne très bien.

Faire une liste apparaît avec les cliquez sur déclencheur fonctionne très bien.

Maintenant, comment dois-je aller sur la liste apparaissent lorsque le déclenchement de l'image est survolé, mais alors, si l'utilisateur clique sur l'image, d'annuler le vol stationnaire et de lancer un clic bascule? En d'autres termes, planant montre la liste et en cliquant sur "pins" de la liste.

Le HTML est assez standard:

<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>

Et la liste d'initialisation, même les plus ennuyeux:

$(function () { 
    $("[rel=popover]").popover();   
});

De ce que j'ai vu jusqu'à présent, il semble probable que la solution est un joli ensemble complexe de popover('show')popover('hide')et popover('toggle') des appels, mais mon javascript /jQuery-foo n'est pas à la hauteur.

EDIT:

Utilisant le code fourni par @hajpoj comme base, j'ai ajouté une fonction pour écouter la hidden.bs.popover événement pour essayer de le ré-activer le mouseenter et mouseleave après le déclenchement de l'événement de clic, mais bien qu'il ne faire le "hover" travailler de nouveau, il tue les clic...

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

source d'informationauteur stk11067