Wie kann ich Bootstrap-Popover am Leben erhalten, während das Popover schwebt?
Bin ich mit dem twitter boostrap - popover zu erstellen, eine hover-card zu zeigen, Benutzer-info, und ich bin auslösen popover bei mouseover überprüfen jsfiddle hier. Ich will zu halten dieses popover am Leben, während es schwebte.
<a href="#" id="example" class="btn btn-danger" >hover for popover</a>
$('#example').popover({
html : true,
trigger : 'manual',
content : function() {
return '<div class="box"></div>';
}
});
$(document).on('mouseover', '#example', function(){
$('#example').popover('show');
});
$(document).on('mouseleave', '#example', function(){
$('#example').popover('hide');
});
Können Sie denken arbeiten der facebook-hover-Karte. Ich will es auf dieselbe Weise. Wie kann ich dies tun?
Kommentar zu dem Problem
niemand weiß, wie?
Sie wollen zu halten, was lebendig? ich bewegen Sie den Mauszeiger über den button und es blieb geöffnet?
Lesen Sie die Letzte Zeile der Frage
Antwort gepostet 🙂
InformationsquelleAutor der Frage vikas devde | 2013-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kleine änderung (Aus der Lösung von vikas) für meinen Anwendungsfall.
1. Öffnen popover auf hover-Ereignis für das popover-Taste
2. Halten popover öffnen, wenn die Maus über die popover-Feld
3. In der Nähe popover auf mouseleave für die popover-Taste oder die popover-Feld.
Mit ihm spielen in Plunker
InformationsquelleAutor der Antwort OkezieE
Ich kam nach einer anderen Lösung...hier ist der code
InformationsquelleAutor der Antwort vikas devde
Hier ist mein nehmen: http://jsfiddle.net/WojtekKruszewski/Zf3m7/22/
Manchmal beim verschieben der Maus von popover-trigger tatsächlichen popover-content Diagonal, Sie den Mauszeiger über die Elemente unten. Ich wollte solche Situationen – so lange, wie Sie erreichen popover Inhalt vor dem timeout feuert, bist du sicher (das popover wird nicht verschwinden). Es erfordert
delay
option.Dieser hack im Grunde überschreibt Popover
leave
Funktion, sondern ruft die original - (Start-timer zum ausblenden des popover). Dann misst es eine einmalige Zuhörermouseenter
popover-content-element.Wenn die Maus betritt den popover, wird der timer deaktiviert ist. Dann dreht hört es sich an
mouseleave
auf popover und wenn es ausgelöst wird, ruft es die ursprüngliche Funktion verlassen, so dass es beginnen konnte zu verstecken timer.InformationsquelleAutor der Antwort Wojtek Kruszewski
Verwendet habe ich das trigger-set, um
hover
und gab den container gesetzt, um die#element
und schließlich das hinzufügen einer Platzierung derbox
zuright
.Sollte dies Ihr setup:
sowie
#example
css mussposition:relative;
überprüfen Sie die jsfiddle unten:https://jsfiddle.net/9qn6pw4p/1/
Bearbeitet
Diese Geige hat beide links funktionieren ohne Probleme
http://jsfiddle.net/davidchase03/FQE57/4/
InformationsquelleAutor der Antwort David Chase
Ich denke, eine einfache Möglichkeit wäre diese:
Diese Weise wird das popover erstellt im target-element selbst. also, wenn Sie mit der Maus über die popover, es ist immer noch über das element. Bootstrap 3.3.2 funktioniert das auch mit diesem. Ältere version haben einige Probleme mit der animation, so möchten Sie vielleicht deaktivieren Sie "animation": false,"
InformationsquelleAutor der Antwort Cu Lý
Dies ist, wie ich mit bootstrap popover mit Hilfe der anderen bits um das Netz. Dynamisch bekommt den Titel und den Inhalt aus die verschiedenen Produkte auf der Seite angezeigt. Jedes Produkt oder eine popover erhält eindeutige id. Popover werden verschwinden, wenn man Sie verlässt das Produkt( $this .pop) oder das popover. Timeout wird benutzt, wo wird die Anzeige der popover bis Ausfahrt über die Produkt statt popover.
InformationsquelleAutor der Antwort hoektoe
Hier ist eine Lösung, die ich erarbeitet, das scheint gut zu funktionieren, aber auch damit Sie mit den normalen Bootstrap-Implementierung für drehen auf allen popovers.
Original fiddle: https://jsfiddle.net/eXpressive/hfear592/
Portiert auf diese Frage:
InformationsquelleAutor der Antwort eXpressiveDesign
Vikas Antwort funktioniert perfekt für mich, hier habe ich auch das hinzufügen von Unterstützung für das delay (zeigen /verstecken).
Außerdem zahlen Sie bitte Aufmerksamkeit, die ich geändert:
mit:
so, auf die es verweist genau auf das geöffnete popover, und nicht irgendeine andere (da jetzt durch die Verzögerung mehr als 1 könnte in der gleichen Zeit geöffnet)
InformationsquelleAutor der Antwort user1993198
Die gewählte Antwort funktioniert aber fehl, wenn das popover wird initialisiert mit der
body
als der container.Einer Lösung auf Basis der gewählten Antwort wird der folgende code muss gesetzt werden, bevor mit der popover.
Die änderung ist minimal mit
self.$tip
statt Traversierung des DOM erwartet Sie das popover zu sein, immer ein Geschwister des Elements.InformationsquelleAutor der Antwort Rubens Mariuzzo
Gleiche Sache für tooltips:
Für mich folgende Lösung funktioniert, weil es nicht fügen Sie Ereignis-Listener auf jedes 'mouseenter', und es ist möglich, den Mauszeiger wieder auf das tooltip-element, welches das tooltip bleibt lebendig.
InformationsquelleAutor der Antwort phlppn
Diese Lösung funktionierte gut für mich: (nun ist seine kugelsichere) 😉
InformationsquelleAutor der Antwort Johannes Ferner
InformationsquelleAutor der Antwort Dinesh Sarak
Ich bin damit einverstanden, dass der beste Weg ist es, die eine gegeben durch: David Chase, Cu Ly und anderen, dass der einfachste Weg, dies zu tun, ist die Verwendung der
container: $(this)
- Eigenschaft wie folgt:Ich möchte darauf hinweisen, dass hier das popover in diesem Fall erbt alle Eigenschaften des aktuellen Elements. So, zum Beispiel, wenn dies für eine
.btn
element(bootstrap), Sie nicht in der Lage, wählen Sie text innerhalb des popover. Wollte nur festhalten, dass seit ich verbrachte einige Zeit schlug meinen Kopf auf diese.InformationsquelleAutor der Antwort forumulator
Fand ich die
mouseleave
wird nicht ausgelöst, wenn seltsame Dinge passieren, wie der Fenster den Fokus ändert sich plötzlich, dann kommt der Benutzer zurück an den browser. In solchen Fällenmouseleave
nie ausgelöst, bis der cursor geht über und verlässt das element wieder.Diese Lösung kam ich mit setzt auf
mouseenter
auf diewindow
Objekt, so dass es verschwindet, wenn die Maus bewegt wird anderswo auf der Seite.Diese wurde speziell für die Arbeit mit mehreren Elementen auf der Seite, die auslösen, dass es (wie in einer Tabelle).
InformationsquelleAutor der Antwort Gabriel Luci
Wird es mehr flexible mit
hover()
:InformationsquelleAutor der Antwort Grey Li