Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Función "click" en vez de hover

Estas en el tema de Función "click" en vez de hover en el foro de Jquery en Foros del Web. Hola! Tengo el siguiente script que hace aparecer un div cuando se hace hover en un botón: Código: $(document).ready(function(){ // se ejecuta el evento hover ...
  #1 (permalink)  
Antiguo 14/03/2014, 08:11
Avatar de NaRanJiTo78  
Fecha de Ingreso: noviembre-2007
Ubicación: In the BeaCh
Mensajes: 874
Antigüedad: 16 años, 5 meses
Puntos: 10
Exclamación Función "click" en vez de hover

Hola!

Tengo el siguiente script que hace aparecer un div cuando se hace hover en un botón:

Código:
  $(document).ready(function(){
  // se ejecuta el evento hover al pasar el mouse por encima 
  $(".selector").hover(function(){
  // cogemos el id del li por el que estamos pasando por encima 
  var id=$(this).attr("id");
 // mostramos el div que tiene una clase que se llama como el id
 $("."+id).show(); },function(){
 // esta función se ejecuta cuando pierde el foco 
 var id=$(this).attr("id"); $("."+id).hide(); }) });
El caso es que el contenido del div es un formulario, por lo que cuando bajas del botón a dicho formulario, desaparece porque ya no estás haciendo hover en el botón...

Screenshot del problema: http://prntscr.com/30pfh2

Url del site: http://goo.gl/aZUT6W

Cómo puedo modificar el código javascript para que en vez de hover sea con función "click", o que el contenido del div no desaparezca?



Gracias por adelantado!
  #2 (permalink)  
Antiguo 14/03/2014, 09:01
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 10 años, 10 meses
Puntos: 32
Respuesta: Función "click" en vez de hover

no deberias poner ese formulario en una posicion estatica.... bueno... aunque si me fijo bien muchas mas cosas de la pagina lo estan xD ... pero bueno.... la solucion a eso enves de hacerte tanto problema seria agregar el formulario dentro del li de tal manera cuando le hagas hover al formulario detectara que sigue en el li y no se perdera el foco
  #3 (permalink)  
Antiguo 14/03/2014, 09:47
Avatar de NaRanJiTo78  
Fecha de Ingreso: noviembre-2007
Ubicación: In the BeaCh
Mensajes: 874
Antigüedad: 16 años, 5 meses
Puntos: 10
Respuesta: Función "click" en vez de hover

Gracias por tu respuesta Andres, lo he dejado en display:block para poder trabajar en el div y poder verlo, porque sino me desaparece xD ya que de jQuery no entiendo mucho, por eso preguntaba que como se hacía la función...
  #4 (permalink)  
Antiguo 14/03/2014, 09:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Función "click" en vez de hover

Si deseas reemplazar el método hover por el método click, basta con que cambies el nombre y quites la función que se ejecuta cuando se retira el puntero del mouse del elemento.

Código Javascript:
Ver original
  1. $(".selector").click(function(){
  2.     var id = $(this).attr("id");
  3.     $("."+id).show();
  4. });

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 14/03/2014, 10:03
Avatar de NaRanJiTo78  
Fecha de Ingreso: noviembre-2007
Ubicación: In the BeaCh
Mensajes: 874
Antigüedad: 16 años, 5 meses
Puntos: 10
Respuesta: Función "click" en vez de hover

Mil gracias Alexis88!! Eres un genio!!

Y hay alguna manera que desaparezca el div al volver a hacer click, o al mover el ratón fuera del div?
  #6 (permalink)  
Antiguo 14/03/2014, 10:09
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Función "click" en vez de hover

Claro, solamente comprueba si está visible o no, de acuerdo a eso, lo muestras u ocultas.

Código Javascript:
Ver original
  1. var id = $(this).attr("id");
  2.     if ($("."+id).css("display") == "none")
  3.         $("."+id).show();
  4.     else
  5.         $("."+id).hide();
  6. });

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 14/03/2014, 10:16
Avatar de NaRanJiTo78  
Fecha de Ingreso: noviembre-2007
Ubicación: In the BeaCh
Mensajes: 874
Antigüedad: 16 años, 5 meses
Puntos: 10
Respuesta: Función "click" en vez de hover

Éste sería el código completo?

Código:
 $(document).ready(function(){
$(".selector").click(function(){
    var id = $(this).attr("id");
    $("."+id).show();
});
var id = $(this).attr("id");
    if ($("."+id).css("display") == "none")
        $("."+id).show();
    else
        $("."+id).hide();

});
Esque así no me funciona...algo habré puesto mal
  #8 (permalink)  
Antiguo 14/03/2014, 10:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Función "click" en vez de hover

Disculpa, no lo puse completo:

Código Javascript:
Ver original
  1. $(".selector").click(function(){
  2.     var id = $(this).attr("id");
  3.     if ($("."+id).css("display") == "none")
  4.         $("."+id).show();
  5.     else
  6.         $("."+id).hide();
  7. });
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 14/03/2014, 10:32
Avatar de NaRanJiTo78  
Fecha de Ingreso: noviembre-2007
Ubicación: In the BeaCh
Mensajes: 874
Antigüedad: 16 años, 5 meses
Puntos: 10
De acuerdo Respuesta: Función "click" en vez de hover

Mil gracias y buen fin de semana!!

Etiquetas: clickonce, hover, javascript
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 21:17.