2010-11-07 7 views
1

Je suis relativement nouveau à jQuery donc ceci peut être une erreur de débutant, mais pour une raison quelconque je ne peux pas obtenir la fonction pour fonctionner..delay ne fonctionne pas

Le code Je travaille avec est:

$(document).ready(function() {      
    $("div#main").css("opacity","0"); 
    $("div#main").animate({opacity: 1}.delay(1000), 'slow'); 
}); 

Avec le "jQuery 1.2.3 - New Wave Javascript script"

Quelqu'un peut-il indiquer ce que je fais mal? Merci d'avance!

+0

Pouvez-vous poster un exemple plus complet? c'est à dire ... où vous stockez votre var opactiy, tous les src si c'est un petit bloc serait utile ... –

Répondre

3

Je vois deux problèmes. Le premier est qu'il n'y a pas de fonction delay dans jQuery 1.2.3. Vous devrez soit l'inclure en tant que plugin, soit mettre à jour la version la plus récente de jQuery. En supposant que vous avez fait cela, l'autre problème est que vous appelez delay sur un objet JavaScript normal, et non sur un objet jQuery. Vous devriez obtenir une erreur en essayant d'appeler une fonction inexistante. Ainsi, au lieu de cela:

$("div#main").animate({opacity: 1}.delay(1000), 'slow'); 

Utilisez ceci:

$("div#main").delay(1000).animate({opacity: 1}, 'slow'); 

Cette insère un deuxième retard dans la file d'attente d'animation qui sera exécutée avant que l'animation d'opacité est déclenchée.

+0

Cela a fonctionné, merci. –

1

Il n'y a rien de mal avec le code que vous montrez ici. Avez-vous placé le tout dans un gestionnaire de document prêt pour qu'il ne s'exécute que lorsque le DOM est prêt pour la manipulation?

$(document).ready(function(){ 
    $("div#main").css("opacity","0").delay(1000).animate({opacity: 1}, 'slow'); 
}); 

Voir: http://www.jsfiddle.net/yijiang/cRqwd/ pour un exemple simple de fonctionnement de votre code.


Edit: Je suppose que vous êtes à la recherche à ceci: http://allforeveryone.blogspot.com/2008/03/jquery-new-wave-javascript.html. Dans le cas où vous n'avez pas remarqué, c'est une incroyablement vieille version de jQuery vous travaillez avec là. delay() a seulement été introduit dans la version 1.4. Rendez-vous au http://jquery.com pour télécharger la dernière version.

+0

Ouais c'est, mais quand je mets le .delay devant le .animate ça ne charge pas du tout. –

+1

@Chad Vous devez inclure plus de code dans votre question - comme vous pouvez le voir, le code que vous avez donné fonctionne. –

+0

droite, Désolé, je viens de poster le code complet. J'ai supprimé tous les autres javascript de la page (jquery lightbox) et vérifié qu'il n'y avait pas de codes d'opacité dans le CSS. –