我添加了一个全局对象,我通过jquery getjson插入我的json 现在我想在函数内的if条件中使用它 我已将其声明为函数的参数,但我仍然收到错误:
TypeError: jsonData is undefined
如果有人能解决问题,那就太棒了。这是我的功能:
function getConcept(jsonData){
$('a').click(function() {
var clickedItem = $(this).attr('title');
if(jsonData.icon!=null){
var concept = clickedItem;
identifiedObjectsList.push(concept);
console.log(identifiedObjectsList);
$("#Boma").append($("<img>", {"src": "Boma.png" ,"style": "width:25px; height:20px; position:absolute; left:" +
x + "px; top:" + y + "px;"}));
}
else {
var concept = undefined;
}
console.log(concept);
});
};
我在if条件中收到此错误。
这就是我调用getConcept的方式:
function varCallBack(){
$.each(json_data.menu, function () {
$menu.append(
getMenuItem(this)
);
getConcept(json_data);
});
下面是全局对象的声明,然后将json插入其中:
var json_data = {};
jQuery.getJSON("/concepts2.json", function(data) {
console.log(data);
json_data = data;
varCallBack();
});
这是我的json:
{
"menu": [{
"name": "concepts",
"id": "1",
"icon": null,
"children": [
{
"name": "land characteristic",
"id": "1.1",
"icon": null,
"children": [
{
"name": "school",
"id": "1.1.1",
"icon": "/black images/Other buildings.png",
"children": null
}
{
"name": "house",
"id": "1.1.2",
"icon": null,
"children": null
}
]
}]
}]
}
答案 0 :(得分:0)
你需要在单击时引用全局变量,因为jsonData是本地函数变量,它将在函数调用后被销毁
function getConcept(){
$('a').click(function() {
var clickedItem = $(this).attr('title');
var concept;
if(json_data.icon!=null){
concept = clickedItem;
identifiedObjectsList.push(concept);
console.log(identifiedObjectsList);
$("#Boma").append($("<img>", {"src": "Boma.png" ,"style": "width:25px; height:20px; position:absolute; left:" +
x + "px; top:" + y + "px;"}));
}
else {
concept = undefined;
}
console.log(concept);
});
};
你对此函数的调用就像下面的
function varCallBack(){
$.each(json_data.menu, function () {
$menu.append(
getMenuItem(this)
);
getConcept();
});
var json_data;
jQuery.getJSON("/concepts2.json", function(data) {
console.log(data);
json_data = data;
varCallBack();
});