Foros del Web » Programando para Internet » Jquery »

Cambiar onclick con jquery

Estas en el tema de Cambiar onclick con jquery en el foro de Jquery en Foros del Web. Hola, quiero cambiar el onclick de un botón (que puede hacer cualquier cosa) para que pida un confirm antes de hacerlo, o sea, algo como: ...
  #1 (permalink)  
Antiguo 18/09/2009, 08:39
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Cambiar onclick con jquery

Hola, quiero cambiar el onclick de un botón (que puede hacer cualquier cosa) para que pida un confirm antes de hacerlo, o sea, algo como:

Código javascript:
Ver original
  1. if (confirm('¿Está seguro?'))
  2.     ejecuta_lo_que_estaba_en_onclick

Estoy intentando crear un objeto Function con el onclick anterior, hacer unbind del evento anterior y construir una nueva función con el confirm, pero me lío mucho con estos objetos Function, algo como:

Código javascript:
Ver original
  1. var onclick_previo = new Function($('.cancelar').attr('onclick'));
  2. $('.cancelar').unbind('click');
  3. $('.cancelar').click(new Function("if (confirm('¿Seguro?')) \n" + onclick_previo));

Pero no funciona, ¿alguna idea mejor?

Gracias
  #2 (permalink)  
Antiguo 18/09/2009, 08:58
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Cambiar onclick con jquery

Cita:
.attr('onclick'))
OnClick no seria un atributo.

Cita:
$('.cancelar').click(new Function("i
Y yo creo que con solo declarar un nuevo onclick, estarás superponiendo el anterior, sin necesidad de unbind.

Por otro lado, tu sintaxis es muy javascript, cuando puede ser mas simple:

$(".cancelar").click(function () { };

Lo que vaya entre el parentesis de la funcion anterior, sera una variable que en verdad no necesitas. Declara el condicional dentro de las llaves.
  #3 (permalink)  
Antiguo 18/09/2009, 09:07
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 20 años
Puntos: 9
Respuesta: Cambiar onclick con jquery

Ya probé eso que dices, pero sí es necesario el unbind, ya que $(".cancelar").click(function () { }); añade al anterior que ya estaba.

Por otro lado, también intenté function () { } en lugar de new Function(""), pero intenté este último porque tenía el onclick anterior dentro de un string, y el constructor Function te permite usar sentencias como string, o eso he leído, pero ya te digo que no me entero mucho

Gracias
  #4 (permalink)  
Antiguo 18/09/2009, 11:15
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 8 meses
Puntos: 101
Respuesta: Cambiar onclick con jquery

Cita:
var onclick_previo = new Function($('.cancelar').attr('onclick'));
Me parece que estas usando una sintaxis que es muy dura, cuando jquery es mas sencillo. En lo que te marco, estas usando "new" para generar un "objeto function". Pero no estas almacenando el evento anterior. Lo estas generando, vacio, en el mejor de los casos (aunque en verdad, onclick no sea un atributo para los tags html).
  #5 (permalink)  
Antiguo 30/06/2010, 05:21
 
Fecha de Ingreso: mayo-2005
Mensajes: 31
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Cambiar onclick con jquery

utiliza el preventDefault
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:28.