Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: cv_olehc en 25 Julio 2014, 13:42 pm



Título: [Resuelto] no funciona funcion jquery en nueva fila insertada dinamicamente
Publicado por: cv_olehc en 25 Julio 2014, 13:42 pm
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
Código:
<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..



Revisando este blog pude confirmar que si '.on()', es la solucion
ej:
Código:
$('#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...