JQuery - no funciona funcion jquery en nueva fila insertada dinamicamente

   
Vista:

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

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

no funciona funcion jquery en nueva fila insertada dinamicamente

Publicado por xve (557 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