2013-08-21 4 views
1

j'ai ma click fonctionjquery multiples sélecteurs, fade in et hors

$("#productlink1").click(function() { 
    $('#productstitle').fadeOut(1000, function(){ 
     $('#productstitle').html('<h4>Corporate Promotions </h4>').fadeIn(1000); 
     }); 
    $('#productscontent,#flexibility').fadeOut(1000, function(){ 
     $('#corporate').fadeIn(1000); 
     }); 

    remove(); 
    $(this).addClass('active'); 
return false; 
}); 

Alors, quand je clique sur le lien, le titre disparaît alors le nouveau titre apparaît en fondu, tout fonctionne bien

Cependant, la deuxième morceau de code, le fondu en comparaît devant le fondu, cette ligne

$('#productscontent,#flexibility').fadeOut(1000, function(){ 
      $('#corporate').fadeIn(1000); 
      }); 

Cependant, si je viens d'un élément sélectionné, il fonctionne très bien

$('#productscontent').fadeOut(1000, function(){ 
       $('#corporate').fadeIn(1000); 
       }); 

Existe-t-il un problème avec plusieurs sélecteurs?

Merci

+0

S'il vous plaît publier votre code HTML. Ma conjecture est que '# productscontent' ou' #flexibility' commencent invisibles, donc le callback s'exécute immédiatement. –

+0

Désolé de ne pas afficher trop de lignes de code, mais oui #flexibility et #corporate les deux commencent de l'affichage: none dans css, et #productscontent est montré – user2389087

+0

Trop de code dans une question vaut mieux que trop peu;) –

Répondre

1

http://jsfiddle.net/XgtVw/

$('#link').click(function() { 
    $("#div1, #div2").each(function(){ 
    $(this).fadeOut(1000, function(){ 
     $('#div3').fadeIn(1000); 
    }); 
}); 
}) 
+0

Merci pour l'entrée – user2389087

+0

ça marche ou pas? –

+0

mis à jour le jsfiddle http://jsfiddle.net/XgtVw/5/ cela fonctionne très bien jusqu'à ce que j'ai besoin de re-masquer les éléments maintenant sur le spectacle – user2389087

1

De l'jQuery .fadeOut() documentation:

Si plusieurs éléments sont animés, il est important de noter que le rappel est exécutée une fois par élément adapté, pas une seule fois pour l'animation dans son ensemble .

0

DEMO

vous espérons que vous avez caché dans un premier temps l'élément corporate

$(document).ready(function(){ 
    $("#corporate").hide();  // hiding corporate on document load 
    $("#productlink1").click(function() { 
     $('#productstitle').fadeOut(1000, function(){ 
      $('#productstitle').html('<h4>Corporate Promotions </h4>').fadeIn(1000); 
      }); 
     $('#productscontent,#flexibility').fadeOut(1000, function(){ 
      $('#corporate').fadeIn(1000); 
      }); 

     remove(); 
     $(this).addClass('active'); 
    return false; 
    }); 
    }); 
+0

Merci pour votre commentaire c'est l'erreur sur JS violon http://jsfiddle.net/LAPaS/7/ les éléments cachés se fanent avant le fondu – user2389087

1

Merci pour toutes les suggestions, je ne pouvais pas sembler obtenir ce qui précède pour travailler ,

essentiellement comme l'élément est caché, sa décoloration immédiatement, une « aki » autour pour moi était juste d'ajouter un délai

$("#productlink1").click(function() { 
    $('#productstitle').fadeOut(1000, function(){ 
     $('#productstitle').html('<h4>Corporate Promotions </h4>').fadeIn(1000); 
     }); 
    $('#productscontent,#flexibility').fadeOut(1000, function(){ 
     $('#corporate').delay(1000).fadeIn(1000); 
     }); 

    remove(); 
    $(this).addClass('active'); 
return false; 
}); 

Cet arrêté le fondu jusqu'à ce que les autres éléments avaient estompé , ce n'est pas comment je voulais le réparer mais ça marche pour le moment.

Avec les autres réponses même qui se passait

éléments déjà cachés seraient devenus 1er