2009-10-10 9 views
3

Je stocke des données dans l'attribut title de certaines divs que je ne devrais probablement pas être. Quoi qu'il en soit, je l'ai fait maintenant et quand je survole ces éléments, cette information apparaît dans l'infobulle par défaut des navigateurs.arrêter l'affichage du titre sur hover avec jquery?

par exemple

<div title="blah blah blah">something</div> 

Y at-il une méthode pour arrêter cette fonctionnalité infobulle de titre de travail comme il le fait normalement?

+1

suppose que c'est une chose de navigateur? vous ne pouvez pas arrêter l'info-bulle. – mauris

+0

ça doit être une chose de navigateur. Je ne le pensais pas: | – willdanceforfun

Répondre

4

Vous pouvez supprimer l'attribut title de votre élément HTML et le stocker ailleurs. JQuery permet de stocker des informations liées aux éléments HTML à l'aide de $().data().

Cela devrait fonctionner:

$(document).ready(function() 
{ 
    $('[title]').each(function() 
    { 
     var title = $(this).attr('title'); 
     $(this).data('title', title).removeAttr('title'); 
    }); 
}); 

Vous pouvez le récupérer plus tard en utilisant $(this).data('title')

8

Vous pouvez déplacer ces données du titre vers un autre attribut et l'utiliser à partir de là.

$(document).ready(function() { 
    $('[title]').each(function() { 
     $(this).attr('data', $(this).attr('title')); 
     $(this).removeAttr('title'); 
}); 
+0

oh cool. 'data' est-il un attribut valide à utiliser sur divs? – willdanceforfun

+0

question idiote à poser ... merci Zed – willdanceforfun

7

Au lieu d'utiliser des attributs HTML, vous pouvez stocker les informations en utilisant $().data()

1

Comme d'autres l'ont dit, vous devriez probablement stocker les données dans un autre domaine que le titre.
Pour répondre à votre question sur le fait de masquer le survol du titre, jetez un oeil à clueTip (ou directement au js). Il remplace les infobulles standard par des versions de fantaisie, s'il peut le faire, je suis sûr qu'il peut être modifié pour ne rien afficher à la place.

2

Zed et Vincent ont raison.

Si vous le souhaitez en fonction jquery (il supprime l'attribut title alors que la souris est dessus, et il restaure quand il laisse) à inclure dans un script multipage:

(function($) { 
     $.fn.tooltipSuppress = function() { 
      $(this).hover(
       function() { 
        $(this) 
         .data('title', $(this).attr('title')) 
         .removeAttr('title'); 
       }, 
       function() { 
        $(this).attr('title', $(this).data('title')); 
       } 
      ); 
     } 
    })(jQuery); 

Ensuite il suffit d'appeler ceci aux éléments que vous voulez qu'il s'applique:

$('div,someOtherSelector,ecc').tooltipSuppress();