2012-08-02 152 views
1

我有一个从另一个函数调用的javascript函数。每次调用时都不执行Javascript函数

由于某些原因,每次调用时都不执行此函数。我试图改变函数的名称,然后一切正常。

我不明白为什么。这里是一个利特尔例如:

javascript 1: 

function a() 
{ 
    b(); 
} 

javascript 2: 

function b() 
{ 
    c(); 
} 

javascript 3: 

function c() 
{ 
    alert("Function c"); 
} 

函数C是因为某些原因执行...例如,如果函数C将被称为NEWC(),然后正常工作。

+1

这三个不同的编译块(例如文件)?你在做什么**实际执行**;这些只是函数的定义,它们如何被调用? – 2012-08-02 08:08:45

+0

你能否提供一个[正在运行的示例](http://sscce.org)以及正确的评论?在你当前的例子中没有呼叫'a'。 – Zeta 2012-08-02 08:12:34

+0

谢谢你的ansewer @AndrzejDoyle。函数a()在单独的js文件中,函数b()和c()在同一个js文件中。我实际上是用函数a()执行第一个JavaScript文件,然后该函数将从第二个js文件调用函数b,函数b()将从同一个文件调用函数c()。 – 2012-08-02 08:13:26

回答

3

您可能在b()范围内存在名称冲突,即当执行b()时,可能发生c被定义为当前范围内的其他内容。

解决方案:启动您的JavaScript调试器,在b()中设置断点并检查当时的c

+0

哦,你说得对@Aaron,我运行了debuger,并且我在js文件b中定义了另一个具有相同名字的函数,所以出现了名称冲突。愚蠢的错误从我身边。对不起,再次感谢。 – 2012-08-02 08:19:50

1

对我来说它工作正常。可能是你在代码中有一些错误。如果你发布完整的代码,我可以帮助。这里是工作代码

<html> 
<head> 
<script type="text/javascript"> 
function a() 
{ 
b(); 
} 
function b() 
{ 
c(); 
} 
function c() 
{ 
alert("hello"); 
} 
</script> 
</head> 
<body> 
<form> 
<label>Hello</label> 
<button onclick="a()">v</button> 
</form> 
</body> 
</html> 
+0

谢谢,我找到了解决方案,我定义了函数c两次,所以有名称冲突。 – 2012-08-02 08:24:39

相关问题