2009-10-25 3 views
0

ok, im essayant d'animer quelque chose à différentes hauteurs si un identifiant sélectionné a une classe sélectionnée. J'ai le code suivant.si les sélecteurs sont chaînés?

function myfunction() { 


    if ($('#homebutton').hasClass("active")); 
    { 
    $('#content').animate({height: "240px",opacity: 1}, 100 , hideLoader()); 
    } 

    if ($('#showbutton').hasClass("active")); 
    { 
    $('#content').animate({height: "79px",opacity: 1}, 200 , hideLoader()); 
    } 

    if ($('#aboutbutton').hasClass("active")); 
    { 
    $('#content').animate({height: "527px",opacity: 1}, 300 , hideLoader());} 

    if ($('#contactbutton').hasClass("active")); 
    { 
    $('#content').animate({height: "1040px",opacity: 1}, 400 , hideLoader()); 
    } 
} 

qui les animations après chaînage l'autre, peu importe ce que je clique il finit par être 1040px haut ce que je fais mal ??

essayé de changer à

{if ($('#homebutton').hasClass("active")); 
$('#content').animate({height: "240px",opacity: 1}, 100 , hideLoader()); 
} 

avec absolument aucun effet

+0

pour 2 moments je pensais que vous vouliez faire enchaînant avec des instructions if! – mauris

Répondre

5

Vous avez séparé les instructions if du code sur la ligne suivante. La seule chose que vous exécutez lorsque la condition est vraie est une instruction vide.

Modifier ceci:

if ($('#homebutton').hasClass("active")); 

dans:

if ($('#homebutton').hasClass("active")) 

et même pour les trois autres.

+0

un si petit changement, énorme différence! problème résolu, merci mon pote. – casben79

+0

Bonne prise. D'un côté, je trouve amusant que l'inclusion d'un point-virgule à la fin de la ligne soit la racine du problème. –

0

Vous pouvez nettoyer ça beaucoup en tirant profit de la langue belle que Javascript est:

$.each({ 
    '#homebutton': { height: '240px', speed: 100 }, 
    '#showbutton': { height: '79px', speed: 200 }, 
    '#aboutbutton': { height: '527px', speed: 300 }, 
    '#contactbutton': { height: '1040px', speed: 400 } 
}, function(selector, controls) { 
    if ($(selector).hasClass('active')) 
    $('#content').animate({height: controls.height, opacity: 1}, controls.speed, hideLoader()); 
}); 
+0

beaucoup mieux, à votre santé! – casben79

Questions connexes