制作基本功能失败

时间:2013-04-29 23:38:38

标签: javascript function

好的,谢谢你的帮助。愚蠢的拼写错误。 我试图重写代码,但它仍然无效。

这是我的完美代码:

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

2 个答案:

答案 0 :(得分:1)

你有两种不同的拼写:

function checpoint()

checkpoint(target, step1);

另外,obj是全局变量吗?我没有看到它被定义或传递给函数的位置。

此外,您应该查看浏览器错误控制台以查看其中报告的错误。当事情不起作用时,这是你应该看的第一个地方,因为它会告诉你未定义的变量,抛出的异常等......

答案 1 :(得分:1)

除了名称中可能存在拼写错误外,该函数定义正常,但参数的使用不正确。您将targetstep作为parameters传递,但之后不使用这些变量,而是使用strings

ggbApplet.setVisible("step",true);

应该是

ggbApplet.setVisible(step, true);

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

应该是:

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

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

范围界定和全局变量可能存在其他问题,但无法从这一小段代码中分辨出来。