JQuery - no funciona funcion jquery en nueva fila insertada dinamicamente

 
Vista:
sin imagen de perfil

no funciona funcion jquery en nueva fila insertada dinamicamente

Publicado por marcelo (5 intervenciones) el 25/07/2014 13:40:49
Saludos
La cuestion es la siguiente:
Tengo una tabla le aplico una funcion jquery sumarTotal(Filas)que se muestra en la ultima fila,funciona bien, el detalle es que cuando inserto dinamicamente una fila este no responde a la funcion.inserto una fila mediante ajax
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
<table id='tablaRegistro'>
<thead>
<tr><th>opc1</th></tr>
<tr><th>ADD</th></tr>
</thead>
<tbody>
<tr id='1'>
<td><input type='text' value='2.3' tabindex='1' id='num'/></td>
<td><input type='button' value='ADD' tabindex='1' id='btnAdd'/></td>
</tr>
<tr id='2'>
<td><input type='text' value='4.3' tabindex='2' id='num'/></td>
<td><input type='button' value='ADD' tabindex='1' id='btnAdd'/></td>
</tr>
<tr id='3'>
<td id='total'></td>
<td></td>
</tr>
</tbody>
</table>
<script>
//FUNCION AL HACER CLICK EN BOTON 'ADD'
$('#tablaRegistro tbody tr #btnAdd').click(function(){
var pos=$(this).attr('tabindex');//
add(pos);//FN QUE INSERTA FILA MEDIATE AJAX DESPUES DEL "pos"
})
//FUNCION sumar valores de inputs en las filas
$('#tablaRegistro tbody tr #num').keyup(function(){
//RRECORRIENDO TODAS LAS FILAS 
$('#tablaRegistro tbody tr').not(':last').each(function(){
 
var num=$(this).find('#num').val();//SELECCIONANDO LOS INPUTS
if(num!=null)
{
resp+=num;
}
})
$('#tablaRegistro tbody tr:last #num').val(resp);
 
})
</script>
Este script es funcional pero al insertar una fila las funciones para el boton 'ADD' y 'KEYUP' de la nueva fila no funcionan
POR FAVOR AYUDENME A DESENMARAÑAR ESTE PROBLEMA intente hacer su seleccion con document.getElementById...pero no funciona...
gracias..
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
sin imagen de perfil

no funciona funcion jquery en nueva fila insertada dinamicamente

Publicado por marcelo (5 intervenciones) el 25/07/2014 16:01:53
Revisando informacion al fin pude confirmar que si '.on()', es la solucion
ej:
$('#tablaRegistro').on('keyup','#tr td #num',function(){})

'keyup'= evento a realizarse
'#tr td #num'=fila insertada dinamicamente.
function(){}=funcion a aplicarse.

Lei por ahi que el metodo live() ya esta obsoleta...

Gracias me salvaron nuevamente...
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
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

no funciona funcion jquery en nueva fila insertada dinamicamente

Publicado por xve (673 intervenciones) el 25/07/2014 21:52:36
Gracias por compartirlo Marcelo!!!
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

no funciona funcion jquery en nueva fila insertada dinamicamente

Publicado por monoculero (4 intervenciones) el 04/08/2014 23:08:56
Es correcto lo que comentan, tanto .bind() como .live() se deberían de dejar de usar, y ahora usar .on()
Yo lo uso de la siguiente manera para crear nuevo eventos así:

$("elemento_dom").on("tipo_evento","elemento_dom",function(event){
//código...
});

Por ejemplo:

$("body").on("click","div.boton",function(e){
console.log("he pulsado un botón");
alert("he pulsado un botón tal");
});
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