2016-05-27 6 views
2

Ich habe ein Problem mit PopOver. Ich möchte, dass es automatisch an allen Positionen eingestellt wird. Wenn es auf der rechten Seite keinen Platz findet, öffnet es sich links. Aber ich möchte, dass es dasselbe für oben/unten tut. wenn es oben keinen Platz findet, sollte es sich unten öffnen und umgekehrt. Kann ich das nicht für alle Seiten tun?PopOver automatisch anpassen Platzierung

$('[data-toggle="popover"]').popover({ 
     trigger: 'manual', 
     placement: 'auto right' 
    }) 

Die HTML

<a data-toggle="popover" class="hlpicon" data-html="true" data-trigger="hover" data-container="body" data-content="This will open a popover" data-original-title="" title=""></a> 

Antwort

1

sollten Sie in der Lage sein, um die placement Option verwenden entweder eine Zeichenfolge oder einer Funktion einen String zurückkehr:

$('[data-toggle="popover"]').popover({ 
    trigger: 'manual', 
    placement: function (context, source) { 
     var position = $(source).position(); 

     if (position.left > 515) { 
      return "left"; 
     } 

     if (position.left < 515) { 
      return "right"; 
     } 

     if (position.top < 110){ 
      return "bottom"; 
     } 

     return "top"; 
    } 
}); 
+0

Könnten Sie Bitte sagen Sie mir, was ist "Kontext" und "Quelle"? Überprüfen Sie auch meine aktualisierte Frage, ich habe das HTML auch hinzugefügt (falls es nützlich ist) –

+0

Kontext war ein Beispiel. Quelle wird verwendet, um die Funktion zu übergeben. – Charlie

+0

In Ihrem HTML-Code haben Sie den Datentrigger auf den Schwebeflug gesetzt, aber in jQuery haben Sie den Trigger auf manuell gesetzt. Je nachdem, ob das Popover beim Überfahren angezeigt werden soll, oder auf – Charlie