Foros del Web » Programando para Internet » Jquery »

Evento fugaz en jquery

Estas en el tema de Evento fugaz en jquery en el foro de Jquery en Foros del Web. A ver si soy capaz de explicar el problema...Estoy montando una especie de interfaz imitando varios botones y una pantalla (pensad en una calculadora online, ...
  #1 (permalink)  
Antiguo 23/07/2012, 14:31
 
Fecha de Ingreso: abril-2012
Mensajes: 63
Antigüedad: 12 años
Puntos: 2
Evento fugaz en jquery

A ver si soy capaz de explicar el problema...Estoy montando una especie de interfaz imitando varios botones y una pantalla (pensad en una calculadora online, para entendernos). Cuando el usuario pulsa un botón, pongamos que así:


Código PHP:
Ver original
  1. <a id="power" href="/index.php?power=on" ><img src="'.$this->rutaImagen.'"  height="48" width="48" /></a>

aparece un mensaje de bienvenida en la pantalla de la interfaz, mensaje que muestro vía php en base a las variables que le paso con la url al link.

Hasta ahí bien, pero es que uno de los botones de la interfaz ha de imitar el comportamiento del típico botón de power de los aparatos eléctricos, que puede estar on(encendido) o off(apagado). De esta manera, cuando el usuario pulsa el botón, éste se muestra de color verde mientras, como digo, aparece el mensaje de bienvenida en la pantalla. Al pulsar de nuevo el botón, se muestra de color rojo y se apaga la pantalla.

Lo estoy intentando con jquery, y hago algo así


Código Javascript:
Ver original
  1. $('a#power').toggle(function(){
  2.  
  3.     $(this).parent().css('background-color','green');
  4.         },
  5.     function(){
  6.     $(this).parent().css('background-color','#721A1A');
  7.        
  8. });

Lo que sucede es que al pulsar el botón, se vuelve verde durante un instante, pero claro, entonces recarga la página y el botón se vuelve a su color original. He tratado de hacerlo con .delegate, también como función callback, pero no consigo hacerlo.

Perdonad por el ladrillazo, pero es que estoy desesperao.
  #2 (permalink)  
Antiguo 24/07/2012, 03:43
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 11 meses
Puntos: 127
Respuesta: Evento fugaz en jquery

Entonces sólo has de comprobar si power es on u off a la recarga de la página por lo que con un simple script puedes directamente dar el color que corresponda

$(document).ready(function(){
if(window.location.pathname == "/index.php?power=on"){

boton.css('background-color','#721A1A');

else if(window.location.pathname == "/index.php?power=off"){
boton.css('background-color','green');
}
});

window.location.pathname es una variable que posee el pathname de la url, o sea, la parte de la url que continúa tras el dominio, que en este caso sería /index.php?power=xx
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #3 (permalink)  
Antiguo 24/07/2012, 10:25
 
Fecha de Ingreso: abril-2012
Mensajes: 63
Antigüedad: 12 años
Puntos: 2
Respuesta: Evento fugaz en jquery

Muchas, gracias, me diste una idea fantástica.

Lo único que por alguna razón pathname sólo me devolvía '/index.php', sin las variables. Lo que hice entonces es utilizar location.href, y la ruta absoluta, y funcionó del diez.

Lo dicho, gracias.
  #4 (permalink)  
Antiguo 08/08/2012, 04:27
 
Fecha de Ingreso: abril-2012
Mensajes: 63
Antigüedad: 12 años
Puntos: 2
Respuesta: Evento fugaz en jquery

Me ha surgido ahora un problema tonto en relación con esto. Tenía puesto algo así como esto:

$(document).ready(function(){
if(window.location.href == "http://misitio.com/index.php?power=on"){
boton.css('background-color','#721A1A');
}

Me estaba funcionando perfecto en Firefox. Pero al probarlo con ie, no funciona. ¿Alguien sabe qué puede estar fallando?
  #5 (permalink)  
Antiguo 09/08/2012, 04:24
 
Fecha de Ingreso: abril-2012
Mensajes: 63
Antigüedad: 12 años
Puntos: 2
Respuesta: Evento fugaz en jquery

Ya lo solucioné:

$(document).ready(function(){
if(location.search == "?power=on"){
boton.css('background-color','#721A1A');
}

Etiquetas: evento, php
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 03:02.