Modifier dynamiquement l'emplacement de la liste en fonction d'où il affiche

J'aimerais changer dynamiquement la liste de placement (gauche/droite, haut/bas) en fonction de l'endroit où se trouve l'élément sur l'écran.

//get_popover_placement(dom_el) returns 'left', 'right', 'top', or 'bottom'
    function set_popover(dom_el) {
    var the_placement = get_popover_placement(dom_el);
    $(dom_el).popover({
        offset: 10,
        placement: the_placement
    }).popover('show');
}

//set the placement on every hover
$('a[data-rel=popover]').hover(function(){
        set_popover(this);
    }, function(){});

Il fonctionne de la première heure, mais si la position de l'élément change (lorsque la fenêtre est redimensionnée, par exemple), le placement n'est pas mis à jour avec les appels suivants à set_popover.

J'ai ajouté un peu de code pour get_popover_placement qui ajoute une couleur différente de la frontière de l'élément, selon le placement. La couleur de la bordure est mis à jour chaque fois, en indiquant le code est appelé et les calculs sont effectués correctement, mais que le placement ne sont pas mises à jour.

Il apparaît que si l'option de placement ne peut être définie qu'une seule fois. Comment puis-je contourner cette limitation? Est-il une variable quelque part qui peut être désactivée pour réinitialiser popovers?

Ma réponse à une question similaire peut être utile: stackoverflow.com/questions/10238089/...

OriginalL'auteur jeremiahs | 2012-01-12