2012-08-02 2 views
1

다른 함수에서 호출되는 javascript 함수가 있습니다.호출 할 때마다 Javascript 함수가 실행되지 않습니다.

몇 가지 이유로이 함수는 호출 할 때마다 실행되지 않습니다. 함수의 이름을 변경하려고 시도한 다음 모든 것이 올바르게 작동합니다.

이유를 모르겠다. 예를 들어 함수 C)가 newC와을 (를 호출 할 경우, 그것은 잘 작동 ...

javascript 1: 

function a() 
{ 
    b(); 
} 

javascript 2: 

function b() 
{ 
    c(); 
} 

javascript 3: 

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

기능 C는 몇 가지 이유로 실행되지 않습니다 : 여기에 저 작은 예입니다.

+1

이 세 가지 다른 편집 블록 (예 : 파일)이 있습니까? ** 실제로 실행중인 것은 무엇입니까 **; 이것들은 함수의 정의에 불과합니다. 어떻게 함수를 호출할까요? –

+0

[실행 예] (http://sscce.org)에 적절한 설명을 제공해 주시겠습니까? 현재 예제에서는'a'를 호출하지 않습니다. – Zeta

+0

ansewer @ AndrzejDoyle을 보내 주셔서 감사합니다. 함수 a()는 별도의 js 파일에 있고 함수 b()와 c()는 동일한 js 파일에 있습니다. 사실 첫 번째 자바 스크립트 파일을 함수 a()와 함께 실행하면 해당 함수는 두 번째 js 파일에서 b 함수를 호출하고 b() 함수는 같은 파일에서 c() 함수를 호출합니다. –

답변

3

b()의 범위에 충돌이있을 수 있습니다. 즉, b()이 실행될 때 c이 현재 범위의 다른 항목에 정의되어있을 수 있습니다.

해결 방법 : JavaScript 디버거를 시작하고 b()에 중단 점을 설정하고 그 시간대 인 c을 확인하십시오.

+0

아, 맞아요 @ 애론, 디버거를 실행하고 js 파일 b에 같은 이름의 다른 함수를 정의 했으므로 이름 충돌이있었습니다. 내 멍청한 실수. 죄송합니다. 다시 한 번 감사드립니다. –

1

나를 위해 그것은 잘 작동합니다. 코드에 오류가있을 수 있습니다. IF 내가 전체 코드를 게시 할 수 있습니다. 작동 코드는 여기

<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를 두 번 정의 했으므로 이름 충돌이있었습니다. –

관련 문제