Javascript 在jquery中使用JSON数据设置动态回退
我试图从ajax jsonp调用中动态设置一个回退函数,但它似乎不起作用——我实际上不太确定这是否可能——至少我认为我做得不对 我有这个Javascript 在jquery中使用JSON数据设置动态回退,javascript,jquery,json,ajax,jsonp,Javascript,Jquery,Json,Ajax,Jsonp,我试图从ajax jsonp调用中动态设置一个回退函数,但它似乎不起作用——我实际上不太确定这是否可能——至少我认为我做得不对 我有这个 var GetFacebookData = function (data) { var dates = [{ "date_from": data.date_from, "date_to": data.date_to }] $.each(data.datatypes, function (i, index) {
var GetFacebookData = function (data) {
var dates = [{ "date_from": data.date_from, "date_to": data.date_to }]
$.each(data.datatypes, function (i, index) {
this.fbcallback[data.datatypes[i]["id"]] = function () {
LoadFacebookData(dates, data.datatypes["id"]);
}
$.ajax({
url: 'http://localhost:59380/' + data.datatypes[i]["urlfile"] + '.php?jsonp=fbcallback' + data.datatypes[i]["id"],
method: 'GET',
dataType: 'jsonp',
jsonp: 'fbcallback',
data: { "lpage": _bankArea, "hashed_token": CryptoJS.MD5("454545").toString(), "date_from": data.date_from, "date_to": data.date_to },
});
});
}
我用这个调用函数
GetFacebookData({ date_from: _datefrom, date_to: _dateto, datatypes: [{ id: "moedsparnord", urlfile: "index" }, { id: "studiepakken", urlfile: "fb_studiedata" }] });
我刚开始
Uncaught TypeError: Cannot set property 'moedsparnord' of undefined
整个概念是,我需要多次运行GetFacebookData
,执行不同的数据
函数
fbcallback['…']
应该是全局函数
尝试在循环中使用此代码
...
var callbackName = 'fbcallback-' + data.datatypes[i]["id"];
window[callbackName] = function () {
LoadFacebookData(dates, data.datatypes["id"]);
}
...
$.ajax({
url: 'http://localhost:59380/' + data.datatypes[i]["urlfile"] + '.php',
method: 'GET',
dataType: 'jsonp',
jsonp: callbackName,
data: { "lpage": _bankArea, "hashed_token": CryptoJS.MD5("454545").toString(), "date_from": data.date_from, "date_to": data.date_to },
});
而
LoadFacebookData
回调方法的内部也应该是全局的(window.loadcallback
)。问题在于LoadFacebookData(日期、数据.数据类型[“id”)代码>函数,你能发布代码吗!
...
var callbackName = 'fbcallback-' + data.datatypes[i]["id"];
window[callbackName] = function () {
LoadFacebookData(dates, data.datatypes["id"]);
}
...
$.ajax({
url: 'http://localhost:59380/' + data.datatypes[i]["urlfile"] + '.php',
method: 'GET',
dataType: 'jsonp',
jsonp: callbackName,
data: { "lpage": _bankArea, "hashed_token": CryptoJS.MD5("454545").toString(), "date_from": data.date_from, "date_to": data.date_to },
});