我有以下工作代码,它接受文件mydata.json
并在函数下处理它。
jQuery(
function ($) {
$.get("mydata.json",function(data) {
// do something with mydata.
});
});
现在我要使用直接从mydata.json
复制的变量来执行该函数,而不是文件:
var mydata_json = {'foo':[1,2,3]};
我该怎么做?
我尝试了但失败了:
jQuery(
var mydata_json = {'foo':[1,2,3]};
function(mydata_json) {
// do something with mydata.
}
);
答案 0 :(得分:2)
语法
jQuery(
function ($) {
$.get("mydata.json",function(data) {
// do something with mydata.
});
});
正在使用无名函数来处理数据。
然而,作为没有名称而没有存储在任何范围内的函数是不可能从其他地方调用的。一个非常简单的解决方案是在全局范围内使用命名函数进行处理:
function processData(data) {
// do something with data.
}
并使用get
的结果调用它:
jQuery(
function ($) {
$.get("mydata.json", processData);
});
通过这种方式,您还可以使用从其他来源获得的其他输入来调用processData
。
答案 1 :(得分:1)
将其作为
jQuery(
var mydata_json = {'foo':[1,2,3]};
stuff(mydata_json);
);
function stuff(mydata_json)
{
// do something with mydata.
}
答案 2 :(得分:1)
你编码:
jQuery(
function ($) {
$.get("mydata.json",function(data) {
// do something with mydata.
});
});
正在将function
传递给jQuery
函数。 jQuery
将保存该函数并在DOM
准备就绪后执行该函数。请参阅documentation
现在想想这个的语法:
jQuery(
var mydata_json = {'foo':[1,2,3]};
function(mydata_json) {
// do something with mydata.
}
);
你已经知道它应该像
jQuery(function($){
var mydata_json = {'foo':[1,2,3]};
function myFunctionName(mydata_json) {
// do something with mydata.
}
myFunctionName(mydata_json);
});
或者只是
jQuery(function($){
var mydata_json = {'foo':[1,2,3]};
// do something with mydata.
});
现在,如果你想向DOM Ready函数传递一个额外的参数,我认为这是不可能的。您可以使mydata_json
全局并从回调内部访问它。
答案 3 :(得分:1)
在此代码中 -
jQuery(
function ($) {
$.get("mydata.json",function(data) {
// do something with mydata.
});
});
你正在匿名函数中进行所有处理。相反,你可以声明一个函数并调用它。
前 -
function domyjosn(data){
}
你可以调用这个函数。