Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Ejecutar función al abrir un div

Estas en el tema de Ejecutar función al abrir un div en el foro de Javascript en Foros del Web. Bueno gente, tengo un problema que nose como resolver, supongamos que tengo esta funcion: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function MiFuncion ( ) ...
  #1 (permalink)  
Antiguo 29/05/2013, 15:51
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Ejecutar función al abrir un div

Bueno gente, tengo un problema que nose como resolver, supongamos que tengo esta funcion:
Código Javascript:
Ver original
  1. function MiFuncion(){alert('Me Ejecute');}
y lo que quiero hacer es que se ejecute cuando abro un div...

Ej:
Código HTML:
Ver original
  1. <a href="#MiDiv" class="AbroDiv">Abrir div...</a>
  2. <div id="MiDiv">Yo soy el div.</div>

Como veran al hacer clic en el enlace el navegador me lleva a ese div cambiando la url por: paginahtml.html#MiDiv

si asigno al evento onClick() de la clase 'AbroDiv' la funcion, todo anda de maravillas.

ESTO LO SE HACER NO ES MI PROBLEMA LO ACLARO POR LAS DUDAS

Mi problema es cuando el usuario accede a la pagina directamente, es decir escribe en la url:paginahtml.html#MiDiv y apreta enter, el navegador abre la pagina en la zona del div pero no ejecuta la funcion, como puedo lograr eso?
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #2 (permalink)  
Antiguo 29/05/2013, 17:36
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 3 meses
Puntos: 36
Respuesta: Ejecutar función al abrir un div

Es por que cuando abres la pagina con esa URL te esta yendo directamente a la Ancla que creaste, osea a paginahtml.html#MiDiv, recuerda que onClick() es un evento y es disparado (trigger) con la interaccion del mouse.

Una solucion que te pongo es que extraigas el div que estas queriendo validar y basado en eso realices una accion, para ello te pongo un ejemplo que puedes descargar.

El funcionamiento es:

1.- Buscas en el url un signo de gato, lo cual significa que estas usando una ancla,
2.- Si existe buscas el nombre del div y lo comparas con uno que declaras en tu codigo javascript. Como ya sabes cual div estas usando lo defines y trabajas con el.
3.- Una vez que lo encontraste haces una comparacion y si es true ejecutas la funcion, que en este caso solo le cambia el color de fondo a Amarillo, si no va por el div en url se queda en verde.

Pruebalo y me cuentas como te fue

http://paste.behstant.com/index.php?show=70

Saludos !!!
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.
  #3 (permalink)  
Antiguo 29/05/2013, 18:06
 
Fecha de Ingreso: mayo-2013
Mensajes: 23
Antigüedad: 11 años
Puntos: 1
Respuesta: Ejecutar función al abrir un div

bueno no se si entendí muy bien pero y si colocas la función en un evento change o load no funciona????
  #4 (permalink)  
Antiguo 29/05/2013, 20:01
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Ejecutar función al abrir un div

Hola gracias por sus respuestas, reedyseth me andubo de 10 tu codigo eso es justo lo que queria lograr. he optimizado el codigo que me pasaste y lo adapte a lo que nesesitaba, posteo aca la solucion por si alguien le sirve::

Código Javascript:
Ver original
  1. //Al cargar la pagina verifico si es un lightbox.
  2. window.onload = function() {
  3.    
  4.     //Reviso si se esta llamando a algun id y si corresponde a una imagen.
  5.     var Referencia = location.hash.substr(1);  
  6.    
  7.     LightBoxImagen(Referencia);
  8.    
  9.     //Asigno la funcion a los hipervinculos de una clase.
  10.     var Links = document.getElementsByClassName('AbreLightBox');
  11.     for(var Aux = 0; Aux < Links.length; Aux++){
  12.         Links[Aux].addEventListener('click', function(){LightBoxImagen(0);}, false);
  13.     }
  14. };
  15.  
  16.  
  17. function LightBoxImagen(Id_Imagen){
  18.     alert(Id_Imagen);
  19. }
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios
  #5 (permalink)  
Antiguo 30/05/2013, 08:57
Avatar de Reedyseth  
Fecha de Ingreso: enero-2009
Ubicación: Chihuahua, México
Mensajes: 419
Antigüedad: 15 años, 3 meses
Puntos: 36
Respuesta: Ejecutar función al abrir un div

Que bueno que te funciono, nada mas ten en cuenta que este codigo que pusiste puede no ser crossbrowser por el metodo addEventListener.

Tendrias dos opciones, lidiar con el problema tu mismo y arreglar el codigo para que sea crossbrowser, o usar un framework como jQuery, Prototype, etc. para lidiar con este problema.

Saludos y me parecio mas eficiente este codigo:

Código Javascript:
Ver original
  1. var Referencia = location.hash.substr(1);
__________________
Reedyseth
Te ayudo? No olvides dar un +
blog:http://behstant.com/blog
En el blog:Tutoriales de Desarrollo Web PHP, Javascript, BD y más.

Etiquetas: funcion, html
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 15:36.