Foros del Web » Programando para Internet » Jquery »

obtener datos de una funcion callback

Estas en el tema de obtener datos de una funcion callback en el foro de Jquery en Foros del Web. Buenas compañeros, tengo una duda creo que un poco peculiar y la verdad no estoy seguro si ese seria el titulo, pero casualmente es la ...
  #1 (permalink)  
Antiguo 12/07/2013, 10:40
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 9 meses
Puntos: 16
obtener datos de una funcion callback

Buenas compañeros, tengo una duda creo que un poco peculiar y la verdad no estoy seguro si ese seria el titulo, pero casualmente es la segunda vez que me pasa., no es precisamente porque necesite hacer lo que esta en el ejemplo, sino que es una funcion de ejemplo.

Suponiendo que tengo una vista con un boton "eliminar" y a ese boton le asocion un evento onclik que llame a una funcion "confirmar_eliminacion" y esa funcion no hace mas que imprimirme un "jConfirm" que es un plug. de jquery. para hacer un "confirm" mas bonito. Ese jconfirm recibe tres parametros 1.mensaje,2.titulo y 3. funcion callback.

Código Javascript:
Ver original
  1. function confirmar_eliminacion(){
  2. var respuesta="";
  3.        jConfirm("Estas seguro que deseas eliminar","Debes confirmar",
  4.                function(respuesta){
  5.                        if(respuesta)
  6.                                respuesta = 1;
  7.                        else
  8.                                respuesta = 0;
  9.                });
  10.       if(respuesta==1)
  11.                  return true
  12.       else
  13.                  return false;
  14. }

Ahora.... alli esta el problema. "respuesta" es una variable a la que tiene acceso es la funcion anonima dentro del jConfirm.... como puedo yo acceder a ese valor desde la función "confirmar_eliminacion"??????
por que así la variable "respuesta" se sigue manteniendo vacia.... no se sobreescribe con el valor de "respuesta".

Mas o menos lo mismo me ha pasado con algunas funciones con ajax. Espero alguien me entienda. y muchas gracias a quien me responda.
Saludos cordiales...
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #2 (permalink)  
Antiguo 12/07/2013, 10:53
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: obtener datos de una funcion callback

buenas,

lo que sucede aquí es que en el scope de la función anónima ya existe una variable con ese nombre y por tanto "enmascara" el resto de las posibles variables con el mismo nombre en otros scopes. es decir, en function(respuesta){...}, respuesta ahí es un argumento de la función anónima, el cual pasa a ser una variable local de esa función. para tu poder acceder a la variable respuesta en el exterior, tendrías que cambiar el nombre del argumento de la función anónima.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 12/07/2013, 11:01
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años, 9 meses
Puntos: 16
Respuesta: obtener datos de una funcion callback

Muchas gracias por responder!
vale. pero aun cambiando el nombre no funciona. sucede lo mismo!!!
__________________
Lo imposible es lo posible visto por los ojos de un incapaz.
Si te sirve la respuesta. dale + al karma.
Saludos
  #4 (permalink)  
Antiguo 12/07/2013, 20:13
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: obtener datos de una funcion callback

el siguiente ejemplo es un esquema bien similar a lo que tienes: una función principal, una variable local, y la invocación a una función externa al que se le pasa como argumento un callback. al final de la función principal, un console.log para mostrar el valor de la variable.
Código:
function main(){
var outter = null;
caller(function(outter){ outter = outter; });
console.log(outter);
}

function caller(callback){ callback("caller"); }

main();
en contraste, fíjate la sútil diferencia de este otro fragmento. el nombre del argumento es distinto a la variable local.
Código:
function main(){
var outter = null;
caller(function(__outter__){ outter = __outter__; });
console.log(outter);
}

function caller(callback){ callback("caller"); }

main();
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 14/07/2013, 01:24
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: obtener datos de una funcion callback

No soy muy experto pero tal vez esto te ayude..

El HTML
Código HTML:
Ver original
  1. <button type="button" id="Prueba">Probando</button>
  2.  <input id="resultado" type="text" value=""/>

El Js

Código Javascript:
Ver original
  1. $(function(){
  2.        
  3.         function Hola(){
  4.           var respuesta = "";
  5.           if(confirm("Esta seguro que deseas Eliminar")){
  6.             respuesta = 1;
  7.           }else{
  8.             respuesta = 0;
  9.           }
  10.          
  11.           return respuesta;
  12.         };              
  13.         $("#Prueba").click(function(){
  14.           var respuesta = Hola();
  15.           $("#resultado").val(respuesta);
  16.         });        
  17.                
  18.       });

Saludos espero haberte ayudado....

Etiquetas: ajax, callback, funcion, javascript, variable
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 05:07.