jQuery - Uncaught RangeError: le Maximum de la pile d'appels de taille dépassait
Le code suivant (voir Violon ici) jette le dépassement de pile visé dans la question du titre. Je vais essayer d'obtenir une zone d'ombre à l'écran dans une image circulaire dans un effet de la pulsation. Quelqu'un peut-il point de la récursivité, s'il vous plaît? Je suis très un Javascript novice et ne pouvez pas le voir. Merci.
HTML
<div id="pulseDiv">
<a href="#" id="advisers-css-image">
<div id="advisersDiv"><img src="http://ubuntuone.com/1djVfYlV62ORxB8gSSA4R4"></div>
</a>
</div>
CSS
.pulse { box-shadow: 0px 0px 4px 4px #AEA79F; }
Javascript
function fadeIn() {
$('#pulseDiv').find('div.advisersDiv').delay(400).addClass("pulse");
fadeOut();
};
function fadeOut() {
$('#pulseDiv').find('div.advisersDiv').delay(400).removeClass("pulse");
fadeIn();
};
- Vous avez deux fonctions de manière récursive s'appellent les uns les autres, sans aucun délai.
- Il a obtenu, grâce à Kevin B - voir aussi le PSL est la réponse qui convient pour le retard.
Vous devez vous connecter pour publier un commentaire.
Vos appels sont effectués de manière récursive qui pousse les fonctions sur la pile à l'infini qui provoque max de la pile des appels de dépassement de l'erreur due à l'récursive comportement. Au lieu essayez d'utiliser setTimeout qui est un rappel.
Également basé sur votre balisage de votre sélection est faux. il devrait être
#advisersDiv
Démo
votre
fadeIn()
les appels de fonction de lafadeOut()
fonction, qui appelle à lafadeIn()
à nouveau la fonction. la récursivité est dans le JS.