好的,谢谢你的帮助。愚蠢的拼写错误。 我试图重写代码,但它仍然无效。
这是我的完美代码:
if (obj != "finished") {
var cmd = "finished = ("+obj+"== target3)";
ggbApplet.debug(cmd);
ggbApplet.setErrorDialogsActive(false);
ggbApplet.evalCommand(cmd);
finished = ggbApplet.getValueString("finished");
if (finished.indexOf("true") > -1) {
ggbApplet.setVisible("step3",true);
}
}
如果我替换了这个代码,它就不再起作用了。
function checkpoint(target,step){
if (obj != "finished") {
var cmd = "finished = ("+obj+"== "+target+")";
ggbApplet.debug(cmd);
ggbApplet.setErrorDialogsActive(false);
ggbApplet.evalCommand(cmd);
finished = ggbApplet.getValueString("finished");
if (finished.indexOf("true") > -1) {
ggbApplet.setVisible(step,true);
}
}
}
checkpoint(target3,step3);
我真的不明白我做错了什么。 obj是在代码中定义的其他东西。但是我不会导致问题,因为在我尝试将其作为函数编写之前,一切都很完美。任何进一步的帮助都非常感谢。
答案 0 :(得分:1)
你有两种不同的拼写:
function checpoint()
和
checkpoint(target, step1);
另外,obj
是全局变量吗?我没有看到它被定义或传递给函数的位置。
此外,您应该查看浏览器错误控制台以查看其中报告的错误。当事情不起作用时,这是你应该看的第一个地方,因为它会告诉你未定义的变量,抛出的异常等......
答案 1 :(得分:1)
除了名称中可能存在拼写错误外,该函数定义正常,但参数的使用不正确。您将target
和step
作为parameters
传递,但之后不使用这些变量,而是使用strings
。
ggbApplet.setVisible("step",true);
应该是
ggbApplet.setVisible(step, true);
和
var cmd = "finished = ("+obj+"== target)";
应该是:
var cmd = "finished = ("+obj+"== " + target + ")";
这样你就可以传入目标和步骤的字符串,它们应该正确评估。
范围界定和全局变量可能存在其他问题,但无法从这一小段代码中分辨出来。