Bonjour
Grâce à ce formidable forum j'ai bien avancé sur une page. Juste un détail que je ne peux pas régler tout seul.
Comment imposer un délai au déclenchement d'un événement mouseover avec jquery-ui ?
Le contexte :
Dans une page, sur survol de certains span, le contenu d'une div est modifié par Ajax.
Ca marche très bien, et voici le code :
Principe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $(".ma_classe").mouseover(function() { var theId = this.getAttribute('id'); $.ajax({ type: "POST", url: "ajax.php", data: 'id='+theId, success: function(html){ $('#ma_destination').html(html); } }); })
J'ai plusieurs span, de classe "ma_classe".
Cette fonction récupère l'id du span survolé, qui est envoyé en paramètre au script ajax.php.
Au retour de celui-ci, le contenu de mon div "ma_destination" est modifié par ce qu'a renvoyé le script ajax.php
Le problème :
J'ai plusieurs span, côte à côte.
Je survole le premier span, mon script modifie bien le contenu de la div à droite de la page. OK !
Ce contenu reste jusqu'à ce qu'on survole un autre span.
Maintenant je veux cliquer dans cette div, à droite. Pour cela je suis obligé de survoler d'autres span, qui du coup modifient le contenu de la div avant que j'ai pu l'atteindre !!!
Moralité, dans ce cas je ne peux jamais atteindre mon contenu contextuel pour cliquer sur un de ses liens par exemple.
Solution ?
Il faudrait que le div contextuel soit modifié après un certain temps de survol sur un lien.
Mais là, incapable de trouver la bonne astuce. Il ne pas d'un widget, mais de jquery-ui tout nu, et les exemples que j'ai trouvés concernant .tooltip, .qtip ou autres libraires...
.delay() à différents niveaux donne au mieux rien du tout, au pire une erreur de syntaxe (delay is not a funtion)...
Je suis persuadé que vous pourrez me donner une piste !?
Un grand merci par avance
Partager