Pourquoi ma fonction hover() provoque-t-elle un va-et-vient ?

Index

Exemple :

$( "#imgID" ).hover(
	function(){ // mouseenter
		$( this ).fadeOut( "slow" );
	},
	function(){ // mouseleave
		$( this ).fadeIn( "slow" );
	}
);

Si la partie "mouseenter" déclenche la partie "mouseleave" c'est bien normal, car les événements se bousculent.

Un fadeOut() ou un animate({ "opacity" : 0 }) se traduit en CSS par un display: none qui provoque un événement mouseleave().

Un fadeIn() ou un animate({ "opacity": 1 }) se traduit en CSS par un display: block qui provoque un événement mouseenter().

Tests unitaires avec QUnit.