0

好的,感谢我已经得到的帮助。愚蠢的拼写错误。我试图重写代码,但它仍然不起作用。

这是我完美的代码:

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 是在代码中以其他方式定义的东西。但我不会引起问题,因为在我尝试将其编写为函数之前,一切都很完美。非常感谢任何进一步的帮助。

4

2 回答 2

1

你有两种不同的拼写:

function checpoint()

checkpoint(target, step1);

另外,是obj全局变量吗?我看不到它在哪里定义或传递给函数。

此外,您应该查看浏览器错误控制台以查看那里报告了哪些错误。当事情不工作时,这是您应该首先查看的地方,因为它会告诉您未定义的变量、抛出的异常等...

于 2013-04-29T23:41:32.363 回答
1

该函数定义良好,除了其名称可能存在拼写错误外,但参数的使用不正确。您正在传入target并且stepasparameters但随后不使用这些变量,而是使用strings

ggbApplet.setVisible("step",true);

应该

ggbApplet.setVisible(step, true);

var cmd = "finished = ("+obj+"== target)";

应该:

var cmd = "finished = ("+obj+"== " + target + ")";

这样,您可以传入目标和步骤的字符串,它们应该正确评估。

范围和全局变量可能还有其他问题,但无法从这个小代码片段中看出。

于 2013-04-29T23:42:55.197 回答