Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Comprobar si un div tiene una clase

Estas en el tema de Comprobar si un div tiene una clase en el foro de Jquery en Foros del Web. Hola amigos tengo una duda estoy haciendo una animacion css con sprites, les pongo el codigo Cita: #Juno{ background: url(sprite/KCamina.png) no-repeat left top; height: 35px; ...
  #1 (permalink)  
Antiguo 28/03/2014, 00:27
 
Fecha de Ingreso: marzo-2011
Ubicación: Oaxaca
Mensajes: 252
Antigüedad: 13 años, 1 mes
Puntos: 17
Pregunta Comprobar si un div tiene una clase

Hola amigos tengo una duda

estoy haciendo una animacion css con sprites, les pongo el codigo

Cita:
#Juno{
background: url(sprite/KCamina.png) no-repeat left top;
height: 35px;
width: 32px;
position: relative;
}

.caminaDerecha{
animation: KcaminaD 0.9s steps(4) infinite;
}

.caminaIzquierda{
animation: KcaminaI 0.9s steps(4) infinite;
}

//////////////////////////////////////////KEY FRAMES//////////////////////////////////////////////
@keyframes KcaminaD {
0% { background-position: 0px 0px; }
100% { background-position: -128px 0px; }
}

@keyframes KcaminaI {
0% { background-position: -32px -35px; }
100% { background-position: -160px -35px; }
}
ahora bien, tengo 1 div en mi codigo html con un ID (llamado Juno), este div no tiene ninguna clase adjunta (eh aqui mi problema)

estoy intentando hacer que cuando presionen 1 tecla se agregue una clase (En este caso seria caminaDerecha o caminaIzquierda), siempre y cuando el div no tenga otra clase ya asignada, si ya tiene una clase, quite la clase y ponga la nueva.

esto es lo que llevo en mi codigo JQuery
Código PHP:
$(document).ready(function() {
    $(
document).keydown(function(key) {
        switch(
parseInt(key.which,10)) {
            case 
37:
                $(
'#Juno').addClass("caminaIzquierda");                
                $(
'#Juno').animate({left"-=15px"}, 'fast');                
            break;
            case 
38:
                $(
'img').animate({top"-=15px"}, 'fast');
                break;
            case 
39:
                $(
'#Juno').addClass("caminaDerecha");
                $(
'#Juno').animate({left"+=10px"}, 'fast');
                break;
            case 
40:
                $(
'img').animate({top"+=15px"}, 'fast');
                break;
            default:
                break;
        }
    });
}); 
Aqui les dejo lo que estoy haciendo (solo funcionan las teclas flecha derecha y flecha Izquierda)
http://juangemelonet.zz.mu/experimentoKirby/kirby.html

como se daran cuenta, conforme valla avanzando seran mas clases las que estare agregando ¿existe alguna funcion o metodo en Jquery que lo haga en automatico?
la verdad soy muy novato con Jquery
de antemano muchas gracias y espero su respuesta :)

Última edición por juangemelo01; 28/03/2014 a las 08:14
  #2 (permalink)  
Antiguo 28/03/2014, 09:14
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 10 meses
Puntos: 32
Respuesta: Comprobar si un div tiene una clase

para eso podrias validar con .hasClass(), si la tiene una le agregas el otro ... y asi..
  #3 (permalink)  
Antiguo 28/03/2014, 09:31
 
Fecha de Ingreso: marzo-2011
Ubicación: Oaxaca
Mensajes: 252
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Comprobar si un div tiene una clase

Gracias andres por responder :)
pues ahorita se me ocurrio poner .removeClass(); de la siguiente forma

Código PHP:
$(document).ready(function() {
    $(
document).keydown(function(key) {
        switch(
parseInt(key.which,10)) {
            case 
37:
                $(
'#Juno').removeClass();
                $(
'#Juno').addClass("caminaIzquierda");                
                $(
'#Juno').animate({left"-=15px"}, 'fast');                
            break;
            case 
38:
                $(
'img').animate({top"-=15px"}, 'fast');
                break;
            case 
39:
                $(
'#Juno').removeClass();            
                $(
'#Juno').addClass("caminaDerecha");
                $(
'#Juno').animate({left"+=10px"}, 'fast');
                break;
            case 
40:
                $(
'img').animate({top"+=15px"}, 'fast');
                break;
            default:
                break;
        }
    });
}); 
lo mejor de todo es que si me funciono
¿lo que no se es si esto es correcto o no?
Gracias nuevamente por esponder amigo :)
  #4 (permalink)  
Antiguo 28/03/2014, 09:47
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 10 meses
Puntos: 32
Respuesta: Comprobar si un div tiene una clase

a pues si estas seguro que no tendra otra clase apesar de caminaIzquierda o caminaDerecha no habra problema... ya que aunque nunca eh usado removeClass() sin especificar que clase XD... infiero que esta removiendo toda clase que tenga por lo tanto de momento si esta bien... pero como dije siempre y cuando despues no tengas que tener otra clase en ese contenedor
  #5 (permalink)  
Antiguo 28/03/2014, 10:11
 
Fecha de Ingreso: marzo-2011
Ubicación: Oaxaca
Mensajes: 252
Antigüedad: 13 años, 1 mes
Puntos: 17
Respuesta: Comprobar si un div tiene una clase

Muchas gracias nuevamente por responder, pues por el momento espero usar una sola clase, si me veo obligado a usar mas, investigare con mas profundidad el .hasClass() :)

Etiquetas: class, css, divs, javascript, sprites
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:53.