Foros del Web » Programando para Internet » Jquery »

Conocer id sabiendo class

Estas en el tema de Conocer id sabiendo class en el foro de Jquery en Foros del Web. Tengo <div> de la siguiente forma: Código: <div id="detalles"> <div id="1" class="fila">contenido</div> <div id="2" class="fila">contenido</div> <div id="3" class="fila">contenido</div> </div> ... Y me gustaría con jquery ...
  #1 (permalink)  
Antiguo 03/08/2015, 05:41
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 21 años, 1 mes
Puntos: 2
Conocer id sabiendo class

Tengo <div> de la siguiente forma:

Código:
<div id="detalles">
	<div id="1" class="fila">contenido</div>
	<div id="2" class="fila">contenido</div>
	<div id="3" class="fila">contenido</div>
</div>
...

Y me gustaría con jquery saber el id de la fila haciendo click encima. Y he hecho:

Código:
$('.fila').click(function() {
	console.log($('.fila').attr('id'));
});
Y también:

Código:
$('.fila').click(function() {
	console.log($('.fila').id);
});
En ambos casos el resultado es que en consola no me aparece nada.
¿Cómo puedo sabe el id de la fila?

Un saludo.
  #2 (permalink)  
Antiguo 03/08/2015, 07:13
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 8 meses
Puntos: 67
Respuesta: Conocer id sabiendo class

El primer metodo estaria casi bien, solo agrega $(this) para saber cual has echo clic y te dará el ID.

Código Javascript:
Ver original
  1. $(".fila").click(function(){
  2.    alert($(this).attr("id"));
  3. });

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #3 (permalink)  
Antiguo 04/08/2015, 01:31
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 21 años, 1 mes
Puntos: 2
Respuesta: Conocer id sabiendo class

Nada, es imposible. No me aparece nada
Os detallo más mi caso.

El bloque de filas lo genero en una llamada AJAX:

Código:
success: function(respuesta){
	var datos = eval('('+respuesta+')');
	for(var i in datos) {
		$("#contenedor").append("<div id='"+datos[i].id+"' class='fila'></div>");
		$("#"+datos[i].id).append(datos[i].nombre);
	}					
}
Con este código me genera:

Código:
<div id="contenedor">
	<div id="1" class="fila">NOMBRE1</div>
	<div id="2" class="fila">NOMBRE2</div>
</div>
Y el evento de .fila lo he cambiado por:

Código:
$(".fila").on("click", function(){
	console.log($(this).attr("id"));
});
He puesto "on" porque he leido que los eventos de elementos que no se han creado aún se propagan con "on" y ya funcionaría.

Pues no. No me sale nada en la consola.

He conseguido que me aparezca bien si meto "async:false" en la llamada AJAX. Y bueno, el resultado son filas que aparecen al instante y parece que sigue siendo asincrono.

¿Pero no hay forma de hacerlo con AJAX asincrono? ¿O qué hago mal?
Un saludo.
  #4 (permalink)  
Antiguo 04/08/2015, 01:39
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 21 años, 1 mes
Puntos: 2
Respuesta: Conocer id sabiendo class

Lo he conseguido de forma asincrona colocando el evento clic en el success de AJAX.
¿Es correcto hacerlo así o estoy haciendo una burrada?
  #5 (permalink)  
Antiguo 04/08/2015, 10:43
Avatar de andresgarciadev  
Fecha de Ingreso: junio-2013
Mensajes: 218
Antigüedad: 11 años, 4 meses
Puntos: 32
Respuesta: Conocer id sabiendo class

si las filas fueron creadas dinamicamente apartir de ajax entonces la solucion deberia ser esta
Código Javascript:
Ver original
  1. $(document).on("click",".fila", function(){
  2.        alert($(this).attr("id"));
  3.     });
  #6 (permalink)  
Antiguo 07/08/2015, 05:34
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 21 años, 1 mes
Puntos: 2
Respuesta: Conocer id sabiendo class

Nada, no me hace nada.
Solo funciona el clic si meto la función en el success de AJAX.
Por un lado si solo quisiera hacer eso, pues lo dejo así, pero quiero ampliar la funcionalidad.

Quisiera hacer esto:

He metido varias imagenes en la fila.
Quisiera hacer eventos clic en cada imagen por separado, y como depende de la id de cada fila pues he hecho esto:

Código:
$(".fila").on("click", function(){
	$($(this).children("img")[0]).on("click", function(){
		alert("Vista 1");
	});
	$($(this).children("img")[1]).on("click", function(){
		alert("Vista 2");
	});
	$($(this).children("img")[2]).on("click", function(){
		alert("Vista 3");
	});
});
Pero claro esto está mal hecho. Porque genera eventos clic duplicados cada vez que pico en una de las imagenes.

A ver si me podéis ayudar, porque no me aclaro.
Si tengo:

Código:
<div id="1" class="fila">
	<img class="imgUno" src="imagenes/uno.png">
	<img class="imgDos" src="imagenes/dos.png">
	<img class="imgTres" src="imagenes/tres.png">
</div>
<div id="2" class="fila">
	<img class="imgUno" src="imagenes/uno.png">
	<img class="imgDos" src="imagenes/dos.png">
	<img class="imgTres" src="imagenes/tres.png">
</div>
¿Como pondría eventos clic en las tres imagenes, mostrando por ejemplo, un alert distinto? Estoy bastante perdido.
  #7 (permalink)  
Antiguo 07/08/2015, 05:57
 
Fecha de Ingreso: septiembre-2003
Mensajes: 140
Antigüedad: 21 años, 1 mes
Puntos: 2
Respuesta: Conocer id sabiendo class

No hay nada como beber un vaso de agua y despejarse.
Así lo hago y perfecto:

Código:
$(".imgUno").on("click", function(){
	alert($(this).parent().attr("id"));
});
$(".imgDos").on("click", function(){
	alert($(this).parent().attr("id"));
});
$(".imgTres").on("click", function(){
	alert($(this).parent().attr("id"));
});
Así, cada vez que hago clic en las imagenes de cada fila, tengo acceso a la id de la fila, y asi poder trabajar con ella.

Un saludo.

Etiquetas: class, conocer
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 16:06.