我有一个带有jquery getJSON的函数,我需要返回结果值(在其他地方使用它)
以下是代码:
function getval(){
jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker?callback=?', function(data) {
// We can't use .return because return is a JavaScript keyword.
return data['return'].avg.value;
});
}
$(function () {
$(document).ready(function() {
alert (getval());
});
});
这不起作用:(
我知道我可以从getJSON函数中调用外部函数,其值如下:
jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker?callback=?', function(data) {
// We can't use return because return is a JavaScript keyword.
mysecondfunction(data['return'].avg.value);
});
function mysecondfunction(value){
//use the value
}
但是我必须从另一个函数调用 json 函数,因为json返回一个动态值,我需要使用它。
我希望它清楚......
非常感谢!!
答案 0 :(得分:7)
以下是最终解决方案:
function getval( callback ){
jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker', function(data) {
// We can't use .return because return is a JavaScript keyword.
callback(data['return'].avg.value);
});
}
$(function () {
$(document).ready(function() {
getval( function ( value ) {
alert( 'Do something with ' + value + ' here!' );
} );
});
});
感谢大家的帮助!!
答案 1 :(得分:3)
您可以尝试使用callback
功能:
function getval( callback ){
jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker?callback=?', function(data) {
// We can't use .return because return is a JavaScript keyword.
callback(data['return'].avg.value);
});
}
$(function () {
$(document).ready(function() {
getval( function ( value ) { alert( 'Do something with ' + value + ' here!' ) } );
});
});
答案 2 :(得分:1)
Ajax调用是异步的,所以你不能让getVal()
函数返回一些东西。无论您需要对结果做什么,都必须在回调函数内部进行。
function getval() {
jQuery.getJSON('http://data.mtgox.com/api/1/BTCUSD/ticker?callback=?', function(data) {
// You have to use "data" here
alert(data['return'].avg.value);
});
}
$(function () {
$(document).ready(function() {
getval();
});
});
答案 3 :(得分:1)
getJSON异步调用,所以返回取消发现
因此您需要使用此args asnyc:false
触发ajax调用传递例如:
function getCountrycodeJson(obj) {
var code="";
$.ajax({
async: false,
dataType : 'json',
url: "url",
type : 'GET',
success: function(data) {
for(var i in data){
//here do your logic and assign value for code varable
}
}
}});
return code;
}
这对我有用.....