Comment puis-je garder bootstrap liste en vie, tandis que la liste est en cours de plané?
Je suis en utilisant twitter bootstrap de la liste pour créer une survolez la carte pour afficher les infos de l'utilisateur, et je suis le déclenchement de liste à la souris vérifier jsfiddle ici. Je veux garder cette liste en vie tout en étant plané.
<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');
});
Vous pouvez penser de travail de facebook placez la carte. Je veux le faire de la même manière. Comment puis-je faire cela?
- personne ne sait comment?
- vous voulez conserver ce que la vie? j'ai passez la souris sur le bouton et il est resté ouvert?
- lire la dernière ligne de la question
Vous devez vous connecter pour publier un commentaire.
Petite modification (à Partir de la solution fournie par vikas) pour l'adapter à mon cas d'utilisation.
1. Ouvrir la liste sur le vol stationnaire de l'événement pour la liste bouton
2. Gardez liste ouverte quand le curseur est sur la liste de la boîte de
3. Fermer la fenêtre pop-over sur mouseleave, soit la liste bouton de, ou de la liste de la boîte.
Jouer avec elle dans Plunker
;
en deuxième$(_this).popover("hide")
. Mais merci, c'était tellement simple et propre!container: 'body'
pour les options, car il fait les cellules maj. Super réponse!animation:false
pour corriger le scintillement de vérifier dans les Plunker lien que j'ai ci-dessus. Il fonctionne parfaitement pour moi.Que je suis venu après une autre solution à ce...voici le code
animation: false
sinon, déplacer la souris sur le lien à plusieurs reprises pour cause, il ne fonctionnera pas correctementVoici mon point de vue: http://jsfiddle.net/WojtekKruszewski/Zf3m7/22/
Parfois, tout en déplaçant la souris de liste déclencheur réelle de la liste de contenu en diagonale, vous passez la souris sur les éléments ci-dessous. Je voulais gérer de telles situations – aussi longtemps que vous atteignez liste du contenu avant que le délai de feux, vous êtes sûr (la liste ne vont pas disparaître). Il nécessite
delay
option.Ce hack essentiellement des remplacements Liste
leave
fonction, mais les appels de l'original (qui démarre la minuterie pour masquer la liste). Puis il attache un auditeur àmouseenter
liste du contenu de l'élément.Si la souris entre dans la liste, la minuterie est désactivée. Puis s'il écoute
mouseleave
sur la liste et s'il est déclenché, il appelle le congé initiale de la fonction de sorte qu'il pourrait commencer à les cacher de la minuterie.container = self.$tip;
de Cette façon, la liste peut encore être trouvé lors de lacontainer
propriété est définie. Il y a un violon ici: jsfiddle.net/dennis_c/xJc65if (!thisTip.is(':visible'))
avant l'appel de laoriginalShow()
container: 'body',
cette solution ne fonctionnera pas comme prévu. La variablecontainer
doit être remplacé parself.$tip
. Vérifier ma réponse pour plus de détails: stackoverflow.com/a/28731847/439427J'ai utilisé le trigger set de
hover
et a donné le conteneur mis à la#element
et enfin l'ajout d'un placement de l'box
àright
.Ce doit être votre installation:
et
#example
css besoinsposition:relative;
vérifier le jsfiddle ci-dessous:https://jsfiddle.net/9qn6pw4p/1/
Édité
Ce violon a deux liens qui fonctionnent sans problèmes
http://jsfiddle.net/davidchase03/FQE57/4/
content
option, afin de rendre le contenu à partir du serveur de côté..ça marche ou j'ai besoin de faire un travail supplémentaire pour queajax
dans le contenu, mais vous devez le configurer pour que cela fonctionne... veuillez cocher la bonne réponse si il résolu votreOP
.. afin que d'autres puissent en bénéficiera
àbutton
puis il l'habitude de la matière? et le changement.box
curseur par défaut...<span>
tag, et je vais appeler la liste sur cette balise span, au lieu de<a>
tag... ici, c'est le travailhttp://jsfiddle.net/testtracker/FQE57/6/
Je pense que d'une manière facile serait celui-ci:
De cette façon, la liste est créée à l'intérieur de l'élément cible elle-même. ainsi, lorsque vous déplacez votre souris sur la liste, c'est toujours au-dessus de l'élément. Bootstrap 3.3.2 fonctionne bien avec cela. Ancienne version peut avoir quelques problèmes avec l'animation, de sorte que vous pouvez désactiver l'animation": false,"
C'est de cette façon que j'ai fait avec bootstrap liste avec l'aide d'autres morceaux dans le net. Dynamiquement obtient le titre et le contenu de mourir divers produits affichés sur le site. Chaque produit ou liste obtient id unique. Liste disparaîtra lors de la sortie du produit( $this .pop) ou la liste. Délai d'attente est utilisée lorsque affichera la liste jusqu'à la sortie au moyen d'un produit au lieu de la liste.
Voici une solution que j'ai trouvée qui semble bien fonctionner tout en vous permettant d'utiliser la normale Bootstrap mise en œuvre pour tourner sur tous les popovers.
Original violon: https://jsfiddle.net/eXpressive/hfear592/
Porté à cette question:
Vikas réponse fonctionne parfaitement pour moi, ici, j'ai aussi ajouter le support pour le retard (afficher /masquer).
Aussi s'il vous plaît prêter attention j'ai changé:
avec:
de sorte qu'il référence exactement à qui a ouvert les fenêtre pop-over, et pas les autres (puisque maintenant, par le biais du retard, plus de 1 pourrait être ouverts en même temps)
La réponse choisie œuvres mais échouera si la liste est initialisée avec la
body
que le conteneur.Une solution basée sur la réponse choisie est le code suivant doit être placé à l'avant à l'aide de la liste.
Le changement est minime à l'aide de
self.$tip
au lieu de traverser le DOM attendre la liste à être toujours l'un des frères et sœurs de l'élément.Je suis d'accord que la meilleure façon est d'utiliser celui qui est donné par: David Chase, Cu Ly, et d'autres personnes que la façon la plus simple pour ce faire est d'utiliser le
container: $(this)
propriété comme suit:Je tiens à souligner ici que la liste dans ce cas, il hérite de toutes les propriétés de l'élément courant. Ainsi, par exemple, si vous faites cela pour un
.btn
élément(bootstrap), vous ne serez pas en mesure de sélectionner du texte à l'intérieur de la liste. Voulais juste pour signaler que depuis, j'ai passé un certain temps à se taper la tête sur ce.Simple 🙂
Même chose pour les info-bulles:
Pour moi à la suite de la solution fonctionne, car il n'est pas ajouter des écouteurs d'événement sur chaque "mouseenter" et il est possible de pointer retour sur l'info-bulle élément qui garde l'info-bulle en vie.
Cette solution a bien marché pour moi: (maintenant, ses pare-balles) 😉
J'ai trouvé le
mouseleave
ne se déclenche pas lorsque des choses étranges se produisent, comme le focus de la fenêtre se modifie brusquement, l'utilisateur revient sur le navigateur. Dans de tels cas,mouseleave
ne sera jamais le feu jusqu'à ce que le curseur passe dessus et laisse l'élément nouveau.Cette solution m'est venu s'appuie sur
mouseenter
sur lewindow
objet, de sorte qu'il disparaît lorsque la souris est déplacée ailleurs sur la page.Cet a été conçu pour fonctionner avec le fait d'avoir de multiples éléments sur la page, qui va la déclencher (comme dans un tableau).
Il sera plus flexible avec
hover()
:C'est mon code pour afficher la dynamique des info-bulles avec retard et chargé en ajax.
JS:
JS:
JS: