Foros del Web » Programando para Internet » Javascript »

saber cual item fue clikado

Estas en el tema de saber cual item fue clikado en el foro de Javascript en Foros del Web. hola tengo la siguiente lista: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < ul id = "thumblist" class = "clearfix" >     < li >< ...
  #1 (permalink)  
Antiguo 14/06/2013, 13:02
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
saber cual item fue clikado

hola

tengo la siguiente lista:

Código HTML:
Ver original
  1. <ul id="thumblist" class="clearfix">
  2.    <li><a href="javascript:void(0);" onclick="$('#dd').dialog('open')" rel="{gallery: 'gal1', smallimage: 'folder/simagen1.jpg',largeimage: 'folder/limagen1.jpg'}"><img alt="" src='folder/imagen1.jpg' width="116" height="93" /></a></li>
  3.    <li><a href="javascript:void(0);" onclick="$('#dd').dialog('open')" rel="{gallery: 'gal1', smallimage: 'folder/simagen2.jpg',largeimage: 'folder/limagen2.jpg'}"><img alt="" src='folder/imagen2.jpg' width="116" height="93" /></a></li>
  4.    <li><a href="javascript:void(0);" onclick="$('#dd').dialog('open')" rel="{gallery: 'gal1', smallimage: 'folder/simagen3.jpg',largeimage: 'folder/limagen3.jpg'}"><img alt="" src='folder/imagen3.jpg' width="116" height="93" /></a></li>
  5.    <!--mas items-->
  6. </ul>

el codigo es de una lista de miniaturas de imagenes, que al dar clic sobre alguna miniatura se abre la imagen en una ventana modal,

bueno y estas son mis dudas

como puedo saber cual <li></li> o <a><a/> ha seleccionado el usuario??
deberia agregar alguna propiedad que me facilite saber cual se a selaccionado??

una vez que sepa cual se selcciono como me traigo los datos de la propiedad rel??

segun yo es con var= $('#id').prop('rel'); no?

y depues como accedo a cada dato del rel?? es decir, ya tengo el rel en la variable var, recordemos que rel es:

rel="{gallery: 'gal1', smallimage: 'folder/simagen3.jpg',largeimage: 'folder/limagen3.jpg'}

por ejemplo si yo quiero smallimage, haria algo asi??:

var simag = var.smallimage; funcionaria ???

espero puendan ayudarme, gracias
  #2 (permalink)  
Antiguo 14/06/2013, 13:08
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: saber cual item fue clikado

recuerda que puedes usar this para obtener la instancia del objeto, de hecho con jquery puedes usar $(this)
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 14/06/2013, 13:13
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
Respuesta: saber cual item fue clikado

hola maycolalvarez

de hecho fue lo primero que probe:

rel = $(this).prop('rel'); //thumblist
alert(rel);

pero me sale undefinded

es que creo que porque lo estoy lanzando desde otra funcion, por que lo necesito saber al momento de abrir mi ventana modal, entonces creo que ahi no conserva el this

Código Javascript:
Ver original
  1. $('#dd').dialog({  
  2.     title: 'Imagen',  
  3.     width: 500,  
  4.     height: 500,  
  5.     closed: true,  
  6.     cache: false,  
  7.     modal: true,
  8.     onOpen:function(){
  9.         //aqui necesito saber que <a> seleccionaron para extraer los datos de su rel
  10.         rel = $(this).prop('rel');
  11.         alert(rel);
  12.         $('.jqzoom').jqzoom({
  13.             zoomType: 'innerzoom',
  14.             lens: true,
  15.             preloadImages: false,
  16.             alwaysOn: false
  17.         });
  18.     }  
  19. });

Última edición por catpaw; 14/06/2013 a las 13:20
  #4 (permalink)  
Antiguo 14/06/2013, 13:41
Avatar de Aeon1  
Fecha de Ingreso: enero-2012
Mensajes: 57
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: saber cual item fue clikado

Cita:
Iniciado por catpaw Ver Mensaje
hola maycolalvarez

de hecho fue lo primero que probe:

rel = $(this).prop('rel'); //thumblist
alert(rel);

pero me sale undefinded

es que creo que porque lo estoy lanzando desde otra funcion, por que lo necesito saber al momento de abrir mi ventana modal, entonces creo que ahi no conserva el this

Código Javascript:
Ver original
  1. $('#dd').dialog({  
  2.     title: 'Imagen',  
  3.     width: 500,  
  4.     height: 500,  
  5.     closed: true,  
  6.     cache: false,  
  7.     modal: true,
  8.     onOpen:function(){
  9.         //aqui necesito saber que <a> seleccionaron para extraer los datos de su rel
  10.         rel = $(this).prop('rel');
  11.         alert(rel);
  12.         $('.jqzoom').jqzoom({
  13.             zoomType: 'innerzoom',
  14.             lens: true,
  15.             preloadImages: false,
  16.             alwaysOn: false
  17.         });
  18.     }  
  19. });
cambia rel = $(this).prop('rel');
por rel = $(this).attr('rel');
  #5 (permalink)  
Antiguo 14/06/2013, 13:51
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
Respuesta: saber cual item fue clikado

hola Aeon1, te comento que es mejor usar prop, eso lei por algun lado, de todos modos no creo que este ahi el detalle...gracias

Tengo un avance:

Código Javascript:
Ver original
  1. $("#thumblist").click(function(e){
  2.     var a = e.target.parentNode;
  3.     rel = a.rel; alert('rel '+rel); //este alert si me da el valor del rel
  4.     s = rel.smallimage;
  5.     b = rel.largeimage;
  6.     alert('s '+s); //aca obtengo undefined
  7.     alert('b '+b); //aca undefined
  8. });

ya tengo el valor del rel, pero ahora necesito sacar del rel smallimage y largeimage

pense que podia acceder a esos valores con

s = rel.smallimage;
b = rel.largeimage;

pero es incorrecto, saben como se podria? o no se puede?

gracias
  #6 (permalink)  
Antiguo 15/06/2013, 09:26
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años
Puntos: 56
Respuesta: saber cual item fue clikado

En jQuery existe la funcion data() para no tener que trabajar con propiedades de HTML y agregar valores al objeto.

Código javascript:
Ver original
  1. $("#thumblist a").click(function(){
  2.   $(this).data("clickado","si") // esto tambien lo puedes colocar en la llamada onOpen de tu modal
  3. })
  4.  
  5. //para obtener la lista..
  6. function obtener(){
  7.   var clickados = [];
  8.   $("#thumblist a").each(function(){
  9.     $(this).data("clickado") == "si" && clickados.push($(this))
  10.   });
  11.   return clickados
  12. }

PD: Puedes agregar tambien mas datos, ejem: $(this).data("smallimage","..").data("largeimage," ...")
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */

Etiquetas: fue, funcion, item
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 10:53.