Foros del Web » Programando para Internet » Jquery »

Selección jquery

Estas en el tema de Selección jquery en el foro de Jquery en Foros del Web. Hola Tengo un código similar a este en mi página Código HTML: <div id= "principal" > <article> <div id= "content" > <ul id= "rootList" > ...
  #1 (permalink)  
Antiguo 12/05/2012, 07:15
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Pregunta Selección jquery

Hola

Tengo un código similar a este en mi página

Código HTML:
<div id="principal">	
					
	<article>
	
		<div id="content">
			<ul id="rootList">
						<li><div class="folder" [...] > [...] </div></li>
						<li><div class="folder" [...] > [...] </div></li>
						<li><div class="file" 	[...] > [...] </div></li>
			</ul>
		</div><!-- content -->
	
	</article>
</div> 
Necesito aplicar detección de eventos (click, dobleclick, ... el evento es lo de menos) a los nodos de la lista rootList (los div class = folder o div class = file).. Para esto ya tengo hecho el selector

El problema es que necesito capturar otro evento diferente en la lista "rootList" al hacer click, doble click... FUERA de los elementos que contiene la lista.

Les tengo puesto display: inline en el CSS, de modo que los huecos que quedan a la derecha de cada item de la lista, quedan "vacíos".

Al seleccionar la lista y anular del selector jQuery los hijos, el selector queda vacío, pues no hay "nada" en esos huecos

¿Cómo puedo seleccionar el hueco para aplicarles el evento de la lista general, sin que me anule los eventos de los items individuales?

Espero que se haya entendido, gracias.
  #2 (permalink)  
Antiguo 15/05/2012, 08:55
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: Selección jquery

No termino de estar muy seguro cual es tu problema, pero si no entendi mal:

1. Tienes la lista de boliche, a cada <li> le puede ocurrir cosas. (hasta ahi bien)
2. Quieres capturar eventos que ocurren dentro de la lista, pero que no son propiamente los <li> (los susodichos "huecos", que imagino que seran los margenes de los <li>).

Si me quede bien con la copla de lo que intentas, tu solucion es sencilla.

Aplica los eventos que quieras aplicar a los <li>.
Aplica los eventos que quieras aplicar a los "huecos" es decir, a la lista en si, el <ul>.

Ahora, esto tiene un dilema, cuando piques un <li> tambien estas picando el <ul>, para evitar que se ejecuten las funciones que solo deberian llamarse al "pulsar los huecos" añade a tus funciones preventDefault, para evitar el burbujeo.

Espero que fuera eso, y con esto se te solucione, suerte!

p.d.: Si pones el codigo cuando tengas una duda, sera mas facil de ver lo que intentas hacer y donde estan los fallos, ese html pelao ayudao poco :P .
  #3 (permalink)  
Antiguo 20/05/2012, 07:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Selección jquery

Hola, perdón por la tardanza en contestar.

Me has entendido bien, eso lo había pensado, pero pense que no es solución porque depende del orden en que el navegador captura los eventos (lo del event-bubbling que comentas).

Si el navegador captura primero los eventos de los nodos mas internos, ok, es válido. El problema viene con los navegadores que capturan los eventos de fuera hacia adentro.

Por eso había pensado en eliminar de la selección de la <ul> los <li>, pero claro, lo que queda en esa selección es vacío (aunque fisicamente haya huecos en la página).
Voy a probar la solución esta que propones a ver qué tal va, pero en principio le había visto ese problema

Gracias!

Última edición por GROGUI2; 20/05/2012 a las 08:07
  #4 (permalink)  
Antiguo 20/05/2012, 08:10
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 13 años, 8 meses
Puntos: 2
Respuesta: Selección jquery

Genial, Funciona!!!

Había leido hace tiempo cuando empece a aprender jquery que determinados navegadores lo hacian en un orden, repasando el libro que lei he visto que el que usa el modelo no válido (de fuera hacia adentro, event capturing) es Netscape, que no se ni que navegador es, algo prehistórico ¿verdad?

Gracias!

Etiquetas: selector
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 06:12.