gpt4 book ai didi

javascript - 未定义的父对象

转载 作者:行者123 更新时间:2023-11-28 01:55:21 24 4
gpt4 key购买 nike

我正在编写一个“家谱”应用程序,但在动态连接 child 与 parent 时遇到问题。我不断收到父级未定义的错误。由于使用相同的函数来创建父级,因此除了在再次调用该函数时通过变量名传递它之外,我不知道如何识别父级。

非常感谢任何能给我指明正确方向的人。我显然不太精通 javascript。

更新:我能够通过将每个函数调用分配给适当名称的变量来解决问题。感谢下面@Oriol 的帮助!

var rafael_bravo = addFamilyMember("rafael_bravo", "Rafael Bravo", "-", "-", "-", god, "GeneralPartner");
var calixta_otero = addFamilyMember("calixta_otero", "Calixta Otero", "-", "-", "-", rafael_bravo, "LimitedPartner");
var omar_bravo = addFamilyMember("omar_bravo", "Omar Bravo", "-", "-", "-", rafael_bravo, "LimitedPartner");


function addFamilyMember (child,name,dob,dod,img,parent,link) {

child = new primitives.orgdiagram.ItemConfig();
child.name = name;
child.birth = dob;
child.death = dod;
child.image = "includes/images/" + img + ".png";
child.templateName = "familyTemplate";
parent.items.push(child);

jQuery(".basicdiagram").orgDiagram("update", primitives.orgdiagram.UpdateMode.Refresh);
return child;
}

最佳答案

你可以使用

var names = {};
function addFamilyMember (id,name,dob,dod,img,parentId,link) {
var child = new primitives.orgdiagram.ItemConfig();
child.name = name;
child.birth = dob;
child.death = dod;
child.image = img ? "includes/images/" + img + ".png" : "";
child.templateName = "familyTemplate";
names[id] = child;
names[parentId].items.push(child);
jQuery(".basicdiagram").orgDiagram("update", primitives.orgdiagram.UpdateMode.Refresh);
return child;
}
addFamilyMember("rafael_bravo", "Rafael Bravo", "-", "-", "", "god", "GeneralPartner");
addFamilyMember("calixta_otero", "Calixta Otero", "-", "-", "", "rafael_bravo", "LimitedPartner");
addFamilyMember("omar_bravo", "Omar Bravo", "-", "-", "", "rafael_bravo", "LimitedPartner");

另请注意,如果您使用 "-" 作为 img,浏览器将尝试下载 includes/images/-.png,因此最好使用一些虚假的东西(例如空字符串 ""void(0)false),然后检查它。我使用了空字符串,但有些浏览器会尝试将当前页面下载为图像,因此在创建图像时最好检查 child.image

关于javascript - 未定义的父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19204417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com