在 jquery 中设置动态回退,每个都包含 JSON 数据
Setting dynamic fallback in jquery each with JSON data
我正在尝试从ajax jsonp调用动态设置回退函数,但它似乎不起作用 - 我实际上不太确定它是否可能 - 至少我相信我做错了。
我有这个
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
,并执行不同的数据。
/*** LOAD FETCHED DATA AS JSON ***/
var LoadFacebookData = function (dates, id) {
_dateLoader.hide();
$('.date-box form').slideUp(750, 'easeOutBack');
var pages = [];
this.loadcallback = function (data) {
var len = data["campaignData"].length;
$.each(data["campaignData"], function (index, value) {
$('#' + id + '-' + value["campaign"]["campaignId"]).find(".facebook").text(AddDecimal(value["campaign"]["campaignReach"]));
$('#' + id + '-' + value["campaign"]["campaignId"]).find(".facebook").attr("data-spend", value["campaign"]["campaignSpend"]);
if (index != len) {
pages[index] = [value["campaign"]["campaignId"], value["campaign"]["campaignSpend"]];
}
});
var string = $('#' + id + ' .total-facebook').text().replace(/,/g, '');
$("#" + id + " .total-facebook").countTo({
from: parseFloat(string),
to: data["totalReach"],
decimals: 0,
formatter: function (value, options) {
return value.toFixed(options.decimals).replace(/'B(?=('d{3})+(?!'d))/g, ".");
},
});
MSNLeadData([{ date_from: dates[0]["date_from"], date_to: dates[0]["date_to"] }, pages]);
StudieLeadData([{ date_from: dates[0]["date_from"], date_to: dates[0]["date_to"], pages }]);
}
$.ajax({
url: 'http://localhost:59380/loaddata.php?jsonp=loadcallback',
method: 'GET',
dataType: 'jsonp',
jsonp: 'loadcallback',
data: { "lpage": _bankArea, "hashed_token": CryptoJS.MD5("454545").toString(), "datatype": id },
});
}
函数
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
)。
相关文章:
- 将工厂作为本地文件的Angular JS,文件中包含JSON
- 在“加载更多”按钮函数中包含 JSON 数据
- 我必须从下面的url中获取数据,其中包含json格式的数据
- 如何使用jQuery在我们的页面中包含json文件
- 如何从html响应解析javascript数组(包含JSON对象作为元素)
- 有条件地在返回语句中包含 json 字段
- 使用 YouTube API 获取包含 JSON Feed 的视频中的所有评论
- 在包含 JSON 数据的表中实现无限滚动
- 打开包含 JSON 数据的新页面,而无需刷新页面
- 是否可以强制用户的浏览器发出(并遵循)正文中包含 JSON 的 GET 请求
- 重复附加的 html,其中包含 json 数据
- 在 jquery 中设置动态回退,每个都包含 JSON 数据
- 对包含 json 的字符串使用 ng-repeat
- $.getJSON没有'不起作用,但在脚本中包含JSON对象起作用
- 如何将数组编码为包含json的函数
- 如何使用Javascript读取包含Json字符串的文本文件
- 在静态html页面中包含json文件(不托管在服务器上)
- 如何在带有beforeSend的AJAX Post中包含JSON对象
- 如何在node.js中包含json文件
- 如何使用node.js调用API,并在主体中包含JSON字符串