20-09-2010, 07:14 PM
(20-09-2010, 06:59 PM)Argorate a écrit : Bon, tu as un peu oublié l'apostrophe et d'enlever "texte, " mais bon :p
J'ai ça maintenant:
$("[title]").mousemove(function(event)
{
$('#texte_info_bulle').html($(this).attr('title'));
positionne_pop_up_on_mouse('info_bulle', event);
event.preventDefault();
});
Et l'info bulle de base s'affiche tjs
PS: c'est quoi l'utilité d'ecrire $(this).attr('title') à la place de this.title qui est quand meme 100 fois plus lisible et plus rapide a écrire puisque ça fait strictement la meme chose?
Certains attributs ne sont accessibles qu'à certains types de balises (par exemple this.action fonctionnera sur une balise form, mais pas sur un lien auquel tu as mis un attribut action. Je préfère opter pour une écriture qui fonctionne toujours, car un code homogène est un code plus propre.
Et si la quantité de caractère te dérangeait vraiment, tu n'utiliserais pas
document.getElementById('texte_info_bulle').innerHTML = texte; alors que tu peux faire $('#texte_info_bulle').html(text);, n'est-ce pas ?
Par contre, le event.preventDefault(); ne fonctionne en effet pas dans ce cas là. Une discussion sur Stack Overflow en parle. Leur suggestion est de passer avec jQuery pour supprimer les attributs title (en les stockant sous forme de données ou d'attributs personnalisés, afin d'avoir accès à leur contenu) :
$(document).ready(function(){
$('[title]').each(function(){
$this = $(this);
$this.attr('data-title', $this.attr('title'));
$this.removeAttr('title');
});
});
Et du coup, tu peux faire ça :
$("[title]").mousemove(function(event){
$('#texte_info_bulle').html(texte, $(this).attr('data-title'));
event.preventDefault();
});
Et n'oublie pas nous montrer quand même ta fonction positionne_pop_up_on_mouse.
Sephi-Chan