Asociar funcion a evento click para nuevo elemento creado dispara multiples veces la funcion
Publicado por Ivan (2 intervenciones) el 08/08/2014 00:52:43
Hola a todos, pues es eso basicamente. Estoy intentando crear unos elementos de paginacion (1,2,3,4,5....). Para ello creo el elemento, le añado la funcion que no es mas que una funcion que hace submit del formulario pero con el numero de pagina metido individualmente en cada elemento. El caso es que el comportamiento no es el esperado, crea los elementos y ejecuta la funcion, que como es un submit vuelve a lanzar la misma pagina y asi indefinidamente.
Llevo varios dias con esto mirando en todos los sitios y ando bastante desesperado porque no consigo saber porque simplemente no asocia la funcion en vez de lanzarla. En fin, ahora pondre el codigo y si alguien pudiera ayudarme se lo agradeceria, sobre todo si es una tonteria que no consigo ver, jejejeje.
La variable ctx es la ruta inicial para la llamada:
y la funcion ejecutaAccion es:
Llevo varios dias con esto mirando en todos los sitios y ando bastante desesperado porque no consigo saber porque simplemente no asocia la funcion en vez de lanzarla. En fin, ahora pondre el codigo y si alguien pudiera ayudarme se lo agradeceria, sobre todo si es una tonteria que no consigo ver, jejejeje.
1
2
3
4
5
6
7
if (numTotalElementos > numElementosXPagina) {
//recogemos la caja de paginacion donde añadir los elementos de paginacion
var cajaPaginacion = $('#cajaPaginacion');
for (i = 0; i < numPaginas; i++) {
cajaPaginacion.append($('<a class="elemPaginaPaginacion">'+(i+1)+'</a>').on('click',ejecutaAccion(ctx+'/bebidas/busquedaBebidasFiltros?pagina='+i,'formIndexBebidas')));
}
}
La variable ctx es la ruta inicial para la llamada:
1
var ctx = '${pageContext.request.contextPath}';
y la funcion ejecutaAccion es:
1
2
3
4
5
6
7
8
9
10
function ejecutaAccion(accion, formId) {
var form = document.getElementById(formId);
if (form != null && form != undefined) {
form.action = accion;
form.submit();
}else{
document.forms[0].action = accion;
document.forms[0].submit();
}
}
Valora esta pregunta


0