我对这两个功能的交互存在疑问。它们用于元素的onclick调用中。本质上(由于无法控制的事情),我需要记住隐藏元素的时间和内容。
除了show函数中的未定义检查,一切都按我想要的工作。当我隐藏事物时,我创建了一个全局变量,当我想要显示事物时,我想再次使用它。我唯一的问题是在show函数中,似乎我认为不是全局变量的东西。
function branchShow(targetID, triggerID){
var target = document.getElementById(targetID);
var trigger = document.getElementById(triggerID);
var parentID = trigger.parentElement.parentElement.parentElement.parentElement.id;
var globalMemory = "wasIHiddenBefore_" + parentID
if (typeof window[globalMemory] !== "undefined"){
if (window[globalMemory]) {
console.log(globalMemory + " is evaluated true");
window[globalMemory] = false;
} else {
console.log(globalMemory + " is evaluated false");
target.setAttribute("style","display: block;");
}
} else {
console.log(globalMemory + " is undefined");
target.setAttribute("style","display: block;");
}
};
function branchHide(targetID, triggerID){
if (typeof i !== "undefined" ) {var iMemory = i;}
if (typeof j !== "undefined" ) {var jMemory = j;}
if (typeof k !== "undefined" ) {var kMemory = k;}
var target = document.getElementById(targetID);
target.setAttribute("style","display: none;");
//don't want to flag on load
if (hasLoadFinished){
window["wasIHiddenBefore_" + targetID] == true;
console.log("wasIHiddenBefore_" + targetID + " created as true");
}
.
.
.
下面是示例执行的控制台输出。在显示问题时,第四行和第六行是最关键的。
wasIHiddenBefore_1e16f2513f7842d5be352ca01b5c1c3f is undefined
wasIHiddenBefore_f82bdc0c527541e68fc405e9ac70015b is undefined
wasIHiddenBefore_2d869e44f4c44454a8415eecbd64061e created as true
wasIHiddenBefore_f82bdc0c527541e68fc405e9ac70015b created as true
wasIHiddenBefore_1e16f2513f7842d5be352ca01b5c1c3f is undefined
wasIHiddenBefore_f82bdc0c527541e68fc405e9ac70015b is undefined
有谁知道为什么我要看到我所看到的东西,以及我可以做些什么来使这些动态变量在函数之间全局作用?谢谢。
window["wasIHiddenBefore_" + targetID] == true;
是比较,而不是作业。尽管记录了“ …创建为true ”,但您从未设置变量。你要window["wasIHiddenBefore_" + targetID] = true;
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句