Foros del Web » Programando para Internet » Javascript » Frameworks JS »

hacer clickeable toda el area

Estas en el tema de hacer clickeable toda el area en el foro de Frameworks JS en Foros del Web. Pues resulta que tengo un panel collapsable (de los que se abren y se cierran), que me funciona a la perfeccion, pero con un pequeño ...
  #1 (permalink)  
Antiguo 07/09/2010, 15:45
Avatar de hanscruz  
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
De acuerdo hacer clickeable toda el area

Pues resulta que tengo un panel collapsable (de los que se abren y se cierran), que me funciona a la perfeccion, pero con un pequeño incoveniente.

Este es el panel tiene una barra clikeable (href que tiene el tamaño de toda la barra y dentro de este un h3 que dice "Titulo del panel"):


Cuando acerco el mouse en cualquier lugar de la barra (incluso en el h3) hace el hover perfectamente cambia el fondo, etc., miren:


Ahora cuando le doy click fuera del area de titulo h3 cierra el panel perfectamente, miren:


Pero cuando le doy click sobre el area del titulo h3 que empieza en la letra T y termina en la letra L, no pasa nada no abre ni cierra el panel, miren:


Para hacer esto uso codigo jquery vendria a ser este:

Primero el html (lo pongo resumido para que se entienda mas):
Código HTML:
Ver original
  1. <div class="panel_implementacion">
  2.                     <!-- inicio div pimplementacion_cabecera -->
  3.                     <div class="pimplementacion_cabecera">
  4.                         <a href="#" class="pimplementacion_titulo_activo" name="panel_mostrar_contenido" rel="pimplementacion"><h4>titulo del panel</h4></a>
  5.                         <div id="pimplementacion_menu">
  6.                             <a href="#" class="pimplementacion_boton" name="panel_mostrar_menu" rel="pimplementacion"  Accion="MostrableNo" Estado="inactivo"></a>
  7.                             <ul id="pimplementacion_opciones" TipoArea="mostrable">
  8.                                 <li><a href="#">configuracion</a></li>
  9.                                 <li><a href="#">editar opciones</a></li>
  10.                                 <li><a href="#">configuracion</a></li>
  11.                                 <li><a href="#">editar opciones</a></li>
  12.                                 <li><a href="#">habilitar opciones</a></li>
  13.                                 <li><a href="#">quitar preferencias</a></li>
  14.                             </ul>
  15.                         </div>
  16.                     </div>
  17.                     <!-- fin div pimplementacion_cabecera -->
  18.                     <!-- inicio div pimplementacion_cuerpo -->
  19.                     <div id="pimplementacion_cuerpo" Estado="abierto">
  20.                         <!-- inicio div pimplementacion_contenido -->
  21.                         <div id="pimplementacion_contenido">
  22.                             <ol style="list-style: decimal; padding: 10px 15px;">
  23.                                 <li>Necesita hacer esta accion</li>
  24.                                 <li>Necesita hacer esta accion</li>
  25.                                 <li>Necesita hacer esta accion</li>
  26.                                 <li>Necesita hacer esta accion</li>
  27.                                 <li>Necesita hacer esta accion</li>
  28.                                 <li>Necesita hacer esta accion</li>
  29.                                 <li>Necesita hacer esta accion</li>
  30.                                 <li>Necesita hacer esta accion</li>
  31.                                 <li>Necesita hacer esta accion</li>
  32.                                 <li>Necesita hacer esta accion</li>
  33.                                 <li>Necesita hacer esta accion</li>
  34.                                 <li>Necesita hacer esta accion</li>
  35.                                 <li>Necesita hacer esta accion</li>
  36.                                 <li>Necesita hacer esta accion</li>
  37.                             </ol>
  38.                         </div>
  39.                         <!-- fin div pimplementacion_contenido -->
  40.                         <!-- inicio div pimplementacion_pie -->
  41.                         <div id="pimplementacion_pie">
  42.                             <span><a href="#" class="enlace">saber mas</a></span>
  43.                         </div>
  44.                         <!-- fin div pimplementacion_pie -->
  45.                     </div>
  46.                     <!-- fin div pimplementacion_cuerpo -->
  47.                 </div>

este es el codigo jquery:
Código Javascript:
Ver original
  1. $('a[name="panel_mostrar_menu"]').click(function(e){
  2.         {
  3.             e.preventDefault();
  4.             var Estado=$(this).parent().next().attr('Estado');
  5.             var NombreRel=$(this).attr('rel');
  6.             if(Estado=='inactivo')
  7.             {
  8.                 $(this).removeClass().addClass(NombreRel+'_boton_activo');
  9.                 $(this).next().show();
  10.                 $(this).attr('Estado', 'activo');
  11.             }
  12.             else
  13.             {
  14.                 $(this).removeClass().addClass(NombreRel+'_boton');
  15.                 $(this).next().hide();
  16.                 $(this).attr('Estado', 'inactivo');
  17.             }
  18.         }


Despues de inverstigar un poco lleque a la conclusion logica que el evento no se dispara, por que el evento se dispara cuando se hace click sobre el enlace no sobre el h3, pero recuerdo una ves que en un tutorial vi como se podia hacer para que con jquery el area sensible al click sea el contenedor (en mi caso el enlace a href) osea el padre y anular a sus hijos(en mi caso anular a h3).

No encuentro ese tutorial por lo que recurro a esta comunidad que un monton de veces me ayudo.

Ya busque en el api de jquery pero tampoco encuentro un ejemplo de como poder hacerlo.

Si se pudera hacer de otra forma tambien vale, cualqueir idea es bienvenida.

Espero haber sido claro y que puedna ayudarme, ya que es urgente.

saludos.


Con un poco de codigo jquery pude hacer que el panel se vea o se oculte dependiendo la situacion en que se encuentre,
__________________
:policia:
  #2 (permalink)  
Antiguo 07/09/2010, 19:15
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Tema movido desde javascript
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 08/09/2010, 10:20
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 11 meses
Puntos: 14
Respuesta: hacer clickeable toda el area

El <a> tiene display=block ?
  #4 (permalink)  
Antiguo 08/09/2010, 15:12
Avatar de hanscruz  
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: hacer clickeable toda el area

Gracias por responder kokoou

Y si si tiene display block.

saludos.
__________________
:policia:

Última edición por hanscruz; 08/09/2010 a las 15:14 Razón: ortografia
  #5 (permalink)  
Antiguo 08/09/2010, 17:51
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: hacer clickeable toda el area

por que no usas como selector pimplementacion_cabecera?

es decri en ves de $('a[name="panel_mostrar_menu"]') esto $('.pimplementacion_cabecera')
  #6 (permalink)  
Antiguo 09/09/2010, 08:52
Avatar de hanscruz  
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: hacer clickeable toda el area

Tredio eso no seria posible ya que la cabecera incluye al menu de opciones en la derecha, si hago lo que tu dices el area clickeable seria todo el ancho de la barra y yo solo quiero que sea la barra hasta donde termina el menu.

De todas maneras ya probe con hacer cambios de seleccion pero ese no es el problema, el problema es que el h3 tiene un area sensible propia y no permite ejecutar el evento del padre en esa area.

Ya probre quitando el h3 y funciona perfetamente. La verdad nose como solucionarlo.

Gracias por responder y saludos.
__________________
:policia:
  #7 (permalink)  
Antiguo 09/09/2010, 09:18
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: hacer clickeable toda el area

cual es el elemento que tiene la flecha?

el link con clase 'pimplementacion_boton'?
  #8 (permalink)  
Antiguo 09/09/2010, 10:19
Avatar de hanscruz  
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: hacer clickeable toda el area

Si exacto esta como fondo

El codigo del css es este:
Código CSS:
Ver original
  1. a.pimplementacion_titulo_activo {display: block; width: 408px; height: 24px; background: #efc02a url(inicio_img/ico_abierto.png) no-repeat 8px 7px; font-weight: bold; text-decoration: none; float: left;}
  2. a.pimplementacion_titulo_activo:hover {background: #D29B15 url(inicio_img/ico_abierto_hover.png) no-repeat 8px 7px;}
  3. a.pimplementacion_titulo_activo h4 {margin: 5px 0 0 24px; color: #000;}
  4. a.pimplementacion_titulo_activo:hover h4 {color: #fff;}
  5.  
  6. a.pimplementacion_titulo_inactivo {display: block; width: 408px; height: 24px; background: #efc02a url(inicio_img/ico_cerrado.png) no-repeat 8px 7px; font-weight: bold; text-decoration: none; float: left;}
  7. a.pimplementacion_titulo_inactivo:hover {background: #D29B15 url(inicio_img/ico_cerrado_hover.png) no-repeat 8px 7px;}
  8. a.pimplementacion_titulo_inactivo h4 {margin: 5px 0 0 24px; color: #000;}
  9. a.pimplementacion_titulo_inactivo:hover h4 {color: #fff;}

Saludos.
__________________
:policia:

Etiquetas: jquery
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 09:05.