Foros del Web » Programando para Internet » Jquery »

La funcion live no me esta funcionando

Estas en el tema de La funcion live no me esta funcionando en el foro de Jquery en Foros del Web. Este es mi index: <html> <head> <script src="jquery-1.9.1.js" type="text/javascript"></script> <script src="jquery-1.10.1.min.js" type="text/javascript"></script> <script src="jquery-ui-1.10.3.custom.min.js" type="text/javascript"></script> <link rel="stylesheet" href="estilo.css" type="text/css"/> <script type="text/javascript"> $(function(){ $('#buscar_usuario').autocomplete({ source : ...
  #1 (permalink)  
Antiguo 05/06/2013, 23:57
 
Fecha de Ingreso: junio-2013
Mensajes: 2
Antigüedad: 10 años, 10 meses
Puntos: 0
La funcion live no me esta funcionando

Este es mi index:


<html>
<head>
<script src="jquery-1.9.1.js" type="text/javascript"></script>
<script src="jquery-1.10.1.min.js" type="text/javascript"></script>
<script src="jquery-ui-1.10.3.custom.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="estilo.css" type="text/css"/>

<script type="text/javascript">
$(function(){
$('#buscar_usuario').autocomplete({

source : 'ajax.php?type=1',
select : function(event, ui){
$('#resultados').slideUp('slow', function(){
$('#resultados').html(
'<h2>Detalles de usuario</h2>' +
'<strong>Nombre:</strong>' + ui.item.value + '<br>' +
'<strong>Apellido:</strong>' + ui.item.apellido_a + '<br>' +
'<strong>Cedula:</strong>' + ui.item.cedula_a

);

});

$('#resultados').slideDown('slow');
}

});

$('#agregar_usuario').click (function(){

$('#resultados').slideUp('slow', function(){

$(this).load('ajax.php?type=2', '', function(){

$(this).slideDown('slow');

});

});
return false;
});

$('#submit').live('click', function(){

alert('Hola');

});

});


</script>

<title></title>
</head>
<body>

<div id="busqueda">
<br><br>
<input type="text" id="buscar_usuario" name="buscar_usuario"/>
<a id="agregar_usuario" href="#">Agregar usuario</a>
</div>
<br><br><br>
<div id="resultados">

</div>



</body>
</html>



necesito que al dar click en el boton submit de esta pagina:


<?php

include_once 'usuarios.class.php';

$usuario = new Usuarios();

$type = $_GET['type'];

switch ($type) {

case 1:
echo json_encode($usuario->buscarUsuario($_GET['term']));
break;

case 2:
?>

<label for="cedula_a">Cedula</label>
<input type="text" id="cedula_a" name="cedula_a"/><br>

<label for="nombre_a">Nombre</label>
<input type="text" id="nombre_a" name="nombre_a"/><br>

<label for="apellido_a">Apellido</label>
<input type="text" id="apellido_a" name="apellido_a"/><br>

<button id="submit" name="submit">Guardar</button>




<?php


break;

case 3:
$usuario->agregarUsuario($_GET);
break;

default:
break;


}
?>

Que llame previamente con ajax, me muestre el mensaje de alerta! ayuda por favor
  #2 (permalink)  
Antiguo 06/06/2013, 07:18
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 9 meses
Puntos: 12
Respuesta: La funcion live no me esta funcionando

live fue removida de jquery a partir de la version 1.9, como alternativa existe la funcion .on(), o el plugin livequery
  #3 (permalink)  
Antiguo 06/06/2013, 07:33
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: La funcion live no me esta funcionando

Hola,

Como te dijeron esa función fue removida la "nueva" es on() tendrías que implementarla así:

Código Javascript:
Ver original
  1. $('#submit').on('click', function(){
  2.  
  3. });

Aquí tienes toda la información sobre ese método que también sustituyó a bind()

http://api.jquery.com/on/

Saludos!
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #4 (permalink)  
Antiguo 06/06/2013, 08:29
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 15 años, 9 meses
Puntos: 12
Respuesta: La funcion live no me esta funcionando

Lo que dice alberto510a es correcto pero no aplica al caso de reemplazar la funcionalidad de live el cual se usa en elementos creados de manera dinámica en la página, para ello .on() dispone de 2 variantes, una para los elementos html que vienen con la pagina original y es la que expone alberto510a, la otra es para elementos que vienen después, ya sea por ajax o creados por javascript y es la siguiente:

Código:
$('#resultados').on('click','#submit',function(){

    // TODO ... On dinamico

});

La función on() en este caso debe buscar dentro de un contexto (#resultados) los elementos creados de forma dinámica (#submit)
  #5 (permalink)  
Antiguo 06/06/2013, 08:31
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: La funcion live no me esta funcionando

Sí así es, la parte que te puse yo sustituye propiamente al método bind() pero si los eventos los quieres recoger por elementos creados dinámicamente deberás usar el método on() como te acaban de indicar.
__________________
No hay preguntas tontas, sino tontos que no preguntan.

Etiquetas: funcion, live
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 17:36.