2010-12-30 20 views
77

Necesito un script jQuery que verá si algún elemento tiene una clase específica y realizar una acción como cambiar la posición.jQuery - Si el elemento tiene clase, haga esto

Este es el camino, pero no creo que esto funcione.

$("a.contact").toggle(function() { 
    $("#contact").animate({ 
     right: '0' 
    }, 2000); 

    if ($("#about").hasClass("opened")) { 
     $("#about").animate({ 
      right: -700 + "px" 
     }, 2000); 
    } 
}, function() { 
    $("#contact").animate({ 
     right: -700 + "px" 
    }, 2000); 
}); 
+0

Bien se dice que usted quiere saber si el elemento "any" tiene una cierta clase pero su selector en su declaración if solo está apuntando al elemento que tiene una identificación de "about" ¿es eso a propósito? Básicamente tratando de averiguar con qué tienes un problema. ¿También has probado el código anterior para ver si funciona? – Adrian

+0

Pregunta de votación abajo debido al hecho de que no * piensas * que funcionará? ¿Qué tal si lo intentas primero?!? Si no funciona, díganos ESPECÍFICAMENTE lo que espera ver y lo que realmente vio. – ken

+0

@ken: de hecho, debería haberlo hecho, pero dado que él es solo un novato humilde, ¿hubiera sido más apropiado un amable empujón en la dirección correcta? Dicho sea de paso, @Florescu, si tiene curiosidad por saber si algo va a funcionar pero no puede resolverlo, haga una burla del problema en jsfiddle.net y conéctelo a él en su pregunta. – treeface

Respuesta

122

En primer lugar, se está perdiendo algunos paréntesis en su condicional:

if ($("#about").hasClass("opened")) { 
    $("#about").animate({right: "-700px"}, 2000); 
} 

Pero también se puede simplificar esto a:

$('#about.opened').animate(...); 

Si #about no tiene la clase opened , no animará.

Si el problema es con la animación en sí, tendríamos que saber más acerca de su posicionamiento elemento (absoluta? Absoluta en el interior de los padres respecto? ¿El padre tiene el diseño?)

+5

Una solución elegante. Bien hecho. – treeface

Cuestiones relacionadas