JQuery - Más probleas con Código generado dinámicamente

   
Vista:

Más probleas con Código generado dinámicamente

Publicado por David (7 intervenciones) el 15/11/2017 19:58:27
Tengo un index.php desde el cual llamo por un método ajax a un buscar_resultados.php que devielve una variable llamada $cadena .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html>
<html>
<head>
  <title>INICIO</title>
  <meta charset="utf-8">
</head>
<body>
     <input  id="buscador3" type="text" class="form-control" placeholder="Search">
     <button id="botoncito" type="submit" class="btn btn-default" >Búsqueda</button>
 
     <div id="mostrador">
 
     </div>
 
</body>
</head>
 
<script type="text/javascript">
 
$('#botoncito').click(function(){
 
  var textoescrito2=$('#buscador3').val();
 
   $.ajax({
    type: 'POST',
    url: 'php/buscar_resultados.php',
    data: 'textoescrito2=' + textoescrito2,
    success: function(htmlresultados) {
 
      $('#mostrador').html(htmlresultados);
    }
  });
 
});
 
 
$("#mostrador").on('click' , 'recuadro.lienzo', function(){
        alert("pintar");
    });
 
</script>

El archico buscar_resultados.php es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
 
	include ("conexion.php");
 
 
	//$conexion=mysqli_connect("localhost","root","","anuncios");
	$valor=$_POST['textoescrito2'];
	//$query="SELECT * FROM anuncios WHERE usuario='1'"; // LIKE '%".$valor."%'";
	$query="SELECT * FROM anuncios WHERE titulo LIKE '%".$valor."%'"; // LIKE '%".$valor."%'";
	$resultados=mysqli_query($conexion,$query) or die ("error en la query");
	$registro=mysqli_fetch_assoc($resultados);
	$numero_registros=mysqli_num_rows($resultados);
 
 
	$cadena="";
 
	echo "numero de regsitros es ".$numero_registros."<br>";
	if($numero_registros!="")
	{
		//$registro2 = mysqli_fetch_assoc($resultados);
	do{
		$enlace=$registro['url'];
		$cadena=$cadena."<div id='recuadro' class='container'>
			<spam id='titulo'>".$registro['titulo']." 0 "."</spam>
			<spam id='descripcion'>" .$registro['descripcion']."</spam><br><br>
			<div id='lienzo'>
			 <img id='imagen' src=".$registro['url']." class='img-rounded' alt='Cinque Terre'>
			</div>
			</div>";
 
	}while($registro = mysqli_fetch_assoc($resultados));
 
 
	echo $cadena;
 
 
}else{
	echo '<tr id="negativo">
				<td colspan="6">No se encontraron resultados</td>
			</tr>';
}
 
 
//echo "<div id='imagen'>pincha</div>";
 ?>

No sé como poner la estrutura jerárquica "#recuadro#lienzo#imagen" para que esto funcione como dios manda ya que hemos generado código de foma dinámica con el médifo ajax de jquery:

1
2
3
$("#mostrador").on('click' , '#recuadro#lienzo#imagen', function(){
        alert("pintar");
    });

Muchas gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Más probleas con Código generado dinámicamente

Publicado por xve (644 intervenciones) el 16/11/2017 08:24:37
Hola David, por lo que entiendo, tienes que hacer el .unbind() del evento click y luego nuevamente hacer el evento .on("click",... con los nuevos id's
http://api.jquery.com/unbind/

Es esto lo que buscas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Más probleas con Código generado dinámicamente

Publicado por David (7 intervenciones) el 16/11/2017 10:37:14
Hola,

Gracias por tu aportación. Pero creo que el problema está en el segundo parámetro "#recuadro#lienzo#imagen'" ya que si pongo esto:

1
2
3
$("#mostrador").on('click' , '#recuadro', function(){
    alert("pinhar");
});

Al hacer un click sobre el div "recuadro" funciona correctamente ponindo como sengundo parámetro de la función #recuadro. L oque falla es cómo poner la jerarquía de Ids "#recuadro#lienzo#imagen"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Más probleas con Código generado dinámicamente

Publicado por Horroroso (53 intervenciones) el 16/11/2017 16:56:42
Hola, no es necesario hacerlo, pues con solo indicar:
1
2
3
$("#mostrador").on('click' , '#imagen', function(){
    alert("pinhar");
});

deberia funcionar, pero si aun asi necesitas la jerarquia, esta se hace de la forma:

#recuadro>#lienzo>#imagen

ejemplo:

1
2
3
$("#mostrador").on('click', '#recuadro>#lienzo>#imagen', function () {
    alert("pinhar");
});

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Más probleas con Código generado dinámicamente

Publicado por David (7 intervenciones) el 16/11/2017 17:57:48
Muchísimas gracias Horroroso!!!

Lo que fallaba era el ">" en elsegundo arguento.

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad