2011-04-01 6 views
0

voilà comment j'utilise jQuery hovervol stationnaire jQuery après le changement DOM

vol stationnaire (handlerIn (eventObject), handlerOut (eventObject))

$(".box").each(function() { 
    var $this = $(this); 
    $this.data('baseColor', $this.css('background-color')); 
    $this.hover(function() { 
     $this.animate({ 
      backgroundColor : "white" 
     }, 50); 
    }, function() { 
     $this.animate({ 
      backgroundColor : $this.data('baseColor') 
     }, 50); 
    }); 
}); 

Le problème est quand DOM change le vol stationnaire l'effet ne fonctionne plus. Je sais la vivre la méthode résolu de tels problèmes plusieurs fois pour moi mais comment puis-je le résoudre dans ce cas?

+1

Vérifiez ma réponse, j'identifie le problème et je vous relie également à un script qui pourrait vous aider à réaliser votre animation. – Khez

Répondre

3

De l'manual:

Toutes les propriétés animées doivent être animés à une seule valeur numérique, sauf indiqué ci-après; la plupart des propriétés non numériques ne peuvent pas être animées à l'aide de la fonctionnalité de base jQuery. (Pour exemple, largeur, hauteur ou gauche peut être animé mais couleur de fond ne peut pas être.) Les valeurs de propriété sont traitées comme nombre de pixels, sauf indication contraire . Les unités em et% peuvent être spécifiées, le cas échéant.

Plus précisément For example, width, height, or left can be animated but background-color cannot be.

Si vous essayez juste de mettre à jour la couleur d'arrière-plan blanc, essayez:

$this.hover(function() { 
     $this.css('background-color', '#fff'); 
}, function() { 
     $this.css('background-color',$this.data('baseColor')); 
}); 

Si vous essayez de faire l'effet semble 50ms après les survols de l'utilisateur , essayez d'utiliser delay.

Maintenant, si vous tentez une transition de la couleur actuelle au blanc, vous devez en apprendre davantage sur la fusion des couleurs. Mais pour vous épargner le problème, voici un excellent script by Michael Leigeber. Il prend en charge l'évanouissement des couleurs d'arrière-plan.


+0

Merci d'avoir signalé le vrai problème. J'ai supprimé ma réponse et voté pour vous. – BoltClock

+0

Il n'y avait pas besoin de supprimer la réponse ... Ty pour le vote jusqu'à si ... – Khez

+0

+1 @Khez vous avez tout à fait raison bien sûr! J'ai oublié à ce sujet et supposé que l'OP avait du code de travail qui arrête de travailler sur les mises à jour DOM. Bonne prise – JohnP