función jQuery devolver valor

Iniciado por Psyke1, 20 Mayo 2012, 19:58 PM

0 Miembros y 1 Visitante están viendo este tema.

Psyke1

Soy muy novato en esto, hice esta función:
Código (javascript) [Seleccionar]

function getID(user){
   $.getJSON('https://twitter.com/users/'+user+'.json?callback=?',
   function(data)
   {
       $('#followers').html(data.id_str);
   });
}


Funciona bien, pero quiero que en vez de modificar el valor de #followers me devuelva un valor, probé así:
Código (javascript) [Seleccionar]

function getID(user){
   $.getJSON('https://twitter.com/users/'+user+'.json?callback=?',
   function(data)
   {
       return data.id_str;
   });
}

Pero claro, me hace return a la función dentro de la que está, y no a getID. :-\
¿Soluciones? :huh:

DoEvents! :P

WarGhost

function getID(user){
    var buff;
    $.getJSON('https://twitter.com/users/'+user+'.json?callback=?', function(data) {
        buff = data.id_str;
    });

    return buff;
}


Así te tendría que funcionar, es un machetazo xD, pero funcionara como tu quieres.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

Psyke1

Gracias, pero no funciona... :silbar:

DoEvents! :P

[u]nsigned

Que yo sepa no se puede. Lo que te recomiendo es crear un input tipo hidden. Asi cuando llamas a getJSON asignarle al value este input oculto el valor id_str. Y luego podes recuperarlo desde donde quieras. Por ejemplo si el input oculto se llamara 'id_str_tmp' el codigo de tu funcion seria:

Código (javascript) [Seleccionar]

function getID(user){
$.getJSON('https://twitter.com/users/'+user+'.json?callback=?',
function(data)
{
$('#id_str_tmp').val(data.id_str);
});
}


Y en tu codigo html tendrias que agregar esto:
Código (html4strict) [Seleccionar]
<input id="id_str_tmp" type="hidden" value="" />

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Psyke1

Muchas gracias, aunque pensé que habría una solución menos fea para estos casos. :-\

DoEvents! :P