2008-11-13 8 views
5

J'ai un popup div montrant sur rightclick (je sais que cela casse la fonctionnalité attendue mais Google Docs le fait alors pourquoi pas?) Cependant l'élément que je montre mon pop-up a un ensemble d'attributs "title" qui apparaît sur le haut de ma div. Je veux toujours que l'infobulle fonctionne mais pas quand le popup est là.Comment empêcher temporairement l'attribut title d'afficher une info-bulle?

Quelle est la meilleure façon d'arrêter l'affichage de l'info-bulle lorsque la fenêtre contextuelle est ouverte/ouverte?

Edit: J'utilise jQuery

Répondre

4

Avec jquery, vous pouvez lier la fonction hover pour définir également l'attribut title sur blank onmouseover, puis le réinitialiser à la sortie de la souris.

$("element#id").hover(
function() { 
    $(this).attr("title",""); 
    $("div#popout").show(); 
}, 
function() { 
    $("div#popout").hide(); 
    $(this).attr("title",originalTitle); 
} 
); 
+0

bien! J'utilise jQuery si parfait (aurait dû le mentionner) –

+2

D'où provient originalTitle? Vous pouvez le stocker en utilisant .data() pour une solution plus générale. –

+0

Comment l'info-bulle fonctionne-t-elle toujours sur le vol stationnaire dans cette solution, tout en permettant un clic droit pour le popup? – bcm

1

Je pense que la mise à l'espace vide et lorsque la ferme popup, la mise à nouveau le texte approprié. Je pense que c'est la façon la plus simple de l'arrêter.

3

Voici un autre exemple de la façon dont il peut être fait en utilisant data pour le stockage de valeur et prop pour la valeur attribuer

$('[title]').on({ 
    mouseenter : function() 
    { 
     $(this).data('title', this.title).prop('title', ''); 
    }, 
    mouseleave: function() 
    { 
     $(this).prop('title', $(this).data('title')); 
    } 
}); 
1

Pour moi, je ne tenais pas ce que le contenu de la balise de titre était. Je viens de le faire:

$('a').hover(function() { 

    $(this).attr('title', ''); 

}); 

Qui a empêché l'affichage de la balise de titre.

Questions connexes