Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] No ejecuta Funcion :(

Estas en el tema de No ejecuta Funcion :( en el foro de Jquery en Foros del Web. Estimados Estoy creando un buscador de productos, el cual tiene el siguiente codigo Código HTML: <?php session_start(); ?> <!DOCTYPE html> <html lang= "en" > <head> ...
  #1 (permalink)  
Antiguo 12/09/2016, 21:42
 
Fecha de Ingreso: marzo-2014
Mensajes: 56
Antigüedad: 10 años, 9 meses
Puntos: 1
No ejecuta Funcion :(

Estimados
Estoy creando un buscador de productos, el cual tiene el siguiente codigo

Código HTML:
<?php 
session_start();


?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Buscador</title>

<script type="text/javascript" src="js/jquery-3.1.0.min.js"></script>

<script>
jQuery(document).ready(function($) {
	$("#search_form").submit(function(e) {
		e.prevenDefault();
	});

	$("#search_form").keyup(function(event) {
		var envio = $("#search").val();
		$('#resultados').html('asd');
		$.ajax({
			url: 'resultado.php',
			type: 'POST',
			data: ('search='+envio),
			success: function(resp){
				if (resp!=""){
					$('#resultados').html(resp);
				}
			}
		})	
		
	});

    $(".add").click(function(a) {
    a.prevenDefault();
 	var id=$(this).attr('data-id');
 	alert (id);


  });


});
	

</script>
   
  </head>

  <body>
 

<form action="" method="POST" name="search_form" id="search_form">
		Ingrese el Codigo : <input type="text" name="search" id="search">



</form>

<div id="resultados"></div>




<?php


if (isset($_SESSION['carrote'])) {
	echo "Existe una sesion definida";
	print_r ($_SESSION['carrote']);
}else{

	echo "No existe sesion definida aun";
}




?>


  </body>
</html>


y su hoja de busquedas

Código PHP:

<?php 
require_once('Connections/necro.php');

$search "";

if (isset(
$_POST['search'])) {
    
$search $_POST['search'];

mysql_select_db($database_necro$necro);
$query_consulta_destacados4 "SELECT * FROM tbl_producto WHERE tbl_producto.table_pro = ".$search." ";
$consulta_destacados4 mysql_query($query_consulta_destacados4$necro) or die(mysql_error());
$row_consulta_destacados4 mysql_fetch_assoc($consulta_destacados4);

 
$all_consulta_producto mysql_query($query_consulta_destacados4);
 
$totalRows_consulta_producto mysql_num_rows($all_consulta_producto);



if(
$totalRows_consulta_producto == 0){

    echo 
"No hay resultado para mostrar";
        }else {

            
    echo 
$row_consulta_destacados4['nom_pro']; 
    echo 
" <a class='add' data-id="
    echo 
$row_consulta_destacados4['id_pro'];
    echo 
"   href='#'>Agregar Producto</a>" ;
}

}
    





?>

El tema que cuando me muestra el producto, al querer pinchar el enlace que la consulta me entrega no me funciona la funcion "add", pero si en un nuevo html pongo esto

Código HTML:
<div id="resultados">Emblema Cross Bone <a class="add" data-id="7" href="#">Agregar Producto</a>
</div> 
Si me funciona la funcion

Código HTML:
    $(".add").click(function(e) {
 	var id=$(this).attr('data-id');
 	alert (id);
Que podra ser ??

se agradece su ayuda !
  #2 (permalink)  
Antiguo 12/09/2016, 23:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: No ejecuta Funcion :(

No funciona porque el elemento es añadido dinámicamente y, por lo tanto, el código JavaScript no lo reconoce puesto que cargó antes que este.

Lo que debes hacer es delegar el evento al elemento de id "resultados" y afectar a los elementos que este contenga cuya clase sea igual a "add".
Código Javascript:
Ver original
  1. $("#resultados").on("click", ".add", function(){
  2.     //Aquí debes colocar las instrucciones
  3. });

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 13/09/2016, 07:24
 
Fecha de Ingreso: marzo-2014
Mensajes: 56
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: No ejecuta Funcion :(

Cita:
Iniciado por Alexis88 Ver Mensaje
No funciona porque el elemento es añadido dinámicamente y, por lo tanto, el código JavaScript no lo reconoce puesto que cargó antes que este.

Lo que debes hacer es delegar el evento al elemento de id "resultados" y afectar a los elementos que este contenga cuya clase sea igual a "add".
Código Javascript:
Ver original
  1. $("#resultados").on("click", ".add", function(){
  2.     //Aquí debes colocar las instrucciones
  3. });


Muchas gracias, me resulto de inmediato

Gracias !

Etiquetas: funcion, html+javascript
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 07:56.