2009-07-19 6 views
0

J'ai une page html pleine de données. Chaque fois que l'utilisateur survole une entrée, une fenêtre contextuelle apparaît (similaire à une info-bulle). Je veux que cette info-bulle reste visible tant que l'utilisateur ne clique pas à l'extérieur et que les autres info-bulles ne s'affichent pas.
Ma question est la suivante: Comment puis-je "verrouiller" d'autres événements hover, soit en utilisant des drapeaux, ou d'une autre méthode, pour y parvenir?Emulation JQuery 'binary lock'

EDIT: Question avec l'aide de drapeaux: Dites dans mon document prêt, j'ai ceci:

var flag = 1; 
flag = Inithoverhandler(flag); 
flag = Inithoverhandler2(flag); 

Puisque les gestionnaires de vol stationnaire ne sont initialisés lorsque la page est ouverte, le drapeau ne récupérons jamais mis à jour. Quelle est la structure appropriée pour utiliser les indicateurs en tant que variables passant et sortant des fonctions?

Merci,
Michael

Répondre

0

Vous pouvez utiliser un drapeau, ou vous pouvez tester combien de fenêtres sont actuellement visibles à l'aide du sélecteur: visible. Si c'est 1, ne montrez pas votre fenêtre suivante.

$(".tooltip:visible").length; // how many tooltips are currently showing? 
$(".tooltip:visible").hide(); // hide any visible tooltip. 

Comme pour ne montrant infobulles quand aucune autre est actuellement visible:

$(".showTooltip").click(function(){ 
    if ($(".tooltip:visible").length > 0) return false; 
    $(".tooltip", this).show(); 
}); 

Travailler avec:

<div class="showTooltip"> 
    <div class=".tooltip"><p>This is the tooltip.</p></div> 
</div> 
Questions connexes