elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Jquery Click en slidedown
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Jquery Click en slidedown  (Leído 2,227 veces)
DanB

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Jquery Click en slidedown
« en: 30 Enero 2014, 18:17 pm »

Buenas ,aver si me podeis ayudar con un problema con el que me encuentro,

estoy realizando un juego web sencillo que consiste en que aparecen en unas posiciones topos y tienes que darles  antes de que desaparezcan para sumar puntos , el tipico de los recreativos ,no me viene el nombre a la cabeza ahora mismo xD

El problema me viene en la funcion que tengo para mostrar el div del topo, en la animacion slideDown cuando muestra el topo, deberia esperar ver si an pulsado click y si no an pulsado esconderse, y si an pulsado esconderse tambien, nose si me esplico pongo el codigo para lo que veais:

HTML
Código
  1. <div id="tablero">
  2. <table border=1 id="tblPrp">
  3. <tr>
  4. <td><div num="1" class="diglet" estado="no"></div></td>
  5. <td><div num="2" class="diglet" estado="no"></div></td>
  6. <td><div num="3" class="diglet" estado="no"></div></td>
  7. </tr>
  8. <tr >
  9. <td><div num="4" class="diglet" estado="no"></div</td>
  10. <td><div num="5" class="diglet" estado="no"></div></td>
  11. <td><div num="6" class="diglet" estado="no"></div></td>
  12. </tr>
  13. <tr >
  14. <td><div num="7" class="diglet" estado="no"></div</td>
  15. <td><div num="8" class="diglet" estado="no"></div></td>
  16. <td> <div num="9" class="diglet" estado="no"></div</td>
  17. </tr>
  18. </table>
  19. </div>
  20.  

Código
  1. .diglet{ width:180px;height:180px;position:relative;background:url('./images/diglet.png') no-repeat;background-size:60%;background-position: center;}
  2.  
JQUERY
Código
  1. function mostrarDig(x){
  2. sel=$('.diglet[num='+x+']');
  3. sel.slideDown(1000);
  4. sel.attr("estado","si");
  5. sel.click(function(){
  6. $(this).slideUp(200);
  7. $(this).attr("estado","no");
  8. });
  9. sel.slideUp(200);
  10. }
  11.  
  12.  

Agradezco ayudas sugerencias y cualquier comentario, gracias :)


« Última modificación: 30 Enero 2014, 18:20 pm por DanB » En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: Jquery Click en slidedown
« Respuesta #1 en: 31 Enero 2014, 02:16 am »

Yo utilizaria setInterval() o setTimeout() para llamar a una funcion mostrar_topo(), mostrar aleatoriamente segun num="numero",  cuando pasen unos segundos llamar otra funcion ocultar_top(), si clickean el topo y su estado es visible ocultar y parar el contador con clearTimeout() o clearInterval().


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Jquery Click en slidedown
« Respuesta #2 en: 31 Enero 2014, 03:36 am »

Efectivamente como dice EFEX lo mejor es hacerlo con un timer.. aunque yo optaría mas por setTimeout() antes que setInterval().

Tienes algunos divs que no están bien cerrados (linea 9,14,16). Puedes combinar varias acciones (jQuery) para intentar no utilizar tanto $(this). Ademas te recomiendo cambiar el estado antes de realizar el slideDown/slideUp para que no haya confusión.

Código
  1. var mostrarDig = function(x){
  2.   var sel=$('.diglet[num='+x+']');
  3.   sel.attr('estado','si').slideDown(1000);
  4.   sel.on('click',function(){
  5.     $(this).attr('estado','no').slideUp(200);
  6.   });
  7.   sel.slideUp(200);
  8. }

Por cierto, le daria a los td el mismo tamaño que al div. Lo digo mas que nada porque si 3 de los div en una misma linea reciben slideUp, el TR se quedaría sin tamaño y se reduciría.

Código
  1. #tablero table tr td {width:180px; height:180px;}

Saludos
« Última modificación: 31 Enero 2014, 11:32 am por @drvy » En línea

DanB

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Jquery Click en slidedown
« Respuesta #3 en: 31 Enero 2014, 13:24 pm »

Gracias a los dos por responder he aplicado vuestros consejos , pero no consigo que el evento click funcione, os pego el codigo con los cambios que he hecho, no entra al click y creo que puede ser a que cambia muy rapido el estado .

Código
  1. function aumentarScore(){
  2. var sel=$("#marcador");
  3. sel.html(puntuacion);
  4. sel.after("<p style='margin-left: 5px; position: absolute; top: 100px; left: 200px;'>x10</p>");
  5. sel.siblings('p').fadeOut(300)
  6. }
  7. var mostrarDig = function(x){
  8. var sel=$('.diglet[num='+x+']');
  9. if(sel.attr("estado")=="no"){
  10. sel.attr("estado","si").slideDown(1000);
  11. ocultarDig(x);
  12. }
  13. }
  14. var  ocultarDig function(x){
  15. var sel=$('.diglet[num='+x+']');
  16. if(sel.attr("estado")=="si"){
  17. sel.attr("estado","no").slideUp(800);
  18. clearTimeout(mostrarDig);
  19. } }
  20.  
  21. $('.diglet').bind('click',function(event){
  22. if($(this).attr("estado")=="si"){
  23. puntuacion+=10;
  24. complete:aumentarScore(),
  25. ocultarDig($(this).attr("num"));
  26. }
  27. });
  28.  
  29.  
Ahora me pondre a hacer los numeros aleatorios, que he pensando en meterlos en un array a modo de pila y hacer un FIFO para que no se genere el mismo numero dos veces al mismo tiempo, alguna sugerencia?

Gracias
« Última modificación: 31 Enero 2014, 13:26 pm por DanB » En línea

DanB

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Jquery Click en slidedown
« Respuesta #4 en: 3 Febrero 2014, 11:59 am »

Up xD :D
En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: Jquery Click en slidedown
« Respuesta #5 en: 3 Febrero 2014, 15:40 pm »

Te falta el signo '=' en la linea 14, tambien para usar las funciones de jquery tenes que definir que el documento se haya cargado...

Código
  1. $(document).ready(function(){
  2. $('.diglet').bind('click',function(event){
  3. if($(this).attr("estado")=="si"){
  4. puntuacion+=10;
  5. complete:aumentarScore(),
  6. ocultarDig($(this).attr("num"));
  7. }
  8. });
  9.                // Como usar las variables.. mostrando especificamente segun numero
  10. mostrarDig(1);
  11. });

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda] Cual es el Valor de de Mause right click down y Mause right click up
Programación Visual Basic
agus0 2 2,809 Último mensaje 15 Julio 2009, 20:48 pm
por agus0
php + jquery
PHP
Kase 5 6,233 Último mensaje 19 Marzo 2011, 01:47 am
por Graphixx
[Ayuda] Usar 2 Jquery al mismo tiempo - Usar 2 veces jquery
Desarrollo Web
Graphixx 5 7,937 Último mensaje 19 Diciembre 2012, 17:17 pm
por #!drvy
slidedown jquery
Desarrollo Web
kakashi20 1 1,516 Último mensaje 14 Marzo 2013, 17:23 pm
por kakashi20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines