Bonjour,
J'ai mis sur une page un div1 qui s'affiche lors d'un survol d'un div2, pas trop compliqué :
Code :
- $("#permalinkListener" ).mouseenter(function() {
- $("#permalink" ).show( "slow" );
- }).mouseleave(function() {
- $("#permalink" ).delay( 3000 ).hide( "slow" );
- });
|
Mais le problème, c'est que si pendant les 3000ms de pause on fait pleins de survols du div 2, alors JQuery empile (à juste titre) les demandes, et les joue les unes après les autres...
alors j'ai tenté d'ajouter clearQueue(), mais sans effet,
Alors j'ai voulu faire ça :
Code :
- $("#permalinkListener" ).mouseenter(handlerMouseEnterPermalien).mouseleave(handlerMouseleavePermalien);
- var handlerMouseEnterPermalien = function() {
- $("#permalinkListener" ).unbind("mouseenter", handlerMouseEnterPermalien);
- $("#permalink" ).show( "slow" );
- }
- var handlerMouseleavePermalien = function() {
- $("#permalinkListener" ).unbind("mouseleave", handlerMouseleavePermalien);
- $("#permalink" ).delay( 3000 ).hide( "slow" );
- $("#permalinkListener" ).delay( 3000 ).bind("mouseenter", handlerMouseEnterPermalien);
- $("#permalinkListener" ).delay( 3000 ).bind("mouseleave", handlerMouseleavePermalien);
- }
|
Mais ça ne coupe pas l'écoute pendant les 3000 milisecondes...
Existe il un moyen ?
Je vous remercie de votre retour
Message édité par naeco le 15-12-2014 à 14:29:39