2013-03-08 2 views
0

동일한 기능을하는 두 개의 함수가 있습니다. 하나는 작동하고 하나는 작동하지 않습니다.전달 된 변수가 정의되지 않습니다. javascript

function showHideRedrawAttendanceAvg(chart, dataType) 
{ 
    $("#attendanceCount").addClass("hide"); 
    $("#attendanceAvg").removeClass("hide"); 
    redrawAttendance(chart, dataType);//Parameters are defined 
} 

function redrawAttendance(chart, dataType) //Parameters are passed and are defined 
{ 
    //Some logic 
} 

//I tried change the parameter name several times to make sure it was unique 
function showHideRedrawAttendanceCount(agagfadfg) 
{ 
    $("#attendanceAvg").addClass("hide"); 
    $("#attendanceCount").removeClass("hide"); 
    redrawAttendanceTree(agagfadfg);//Parameter is defined 
} 

function redrawAttendanceTree(agagfadfg)//Parameter becomes undefined 
{ 
    //Some logic 
} 

왜 두 함수가 다르게 동작하는지 알 수 없습니다. 심지어 파일에서 내 모든 자바 스크립트를 제거하고 그냥 showHideRedrawAttendanceCount 및 redrawAttendanceCount 기능을두고 여전히 작동하지 않았다.

<ul class="dropdown-menu"> 
    <li class="dropdown-submenu"> 
     <a href="#">Attendance Average</a> 
     <ul class="dropdown-menu"> 
      <li><a data-toggle="tab" href="#attendance" onclick="showHideRedrawAttendanceAvg(attendance, 'Weekly')">Weekly</a></li> 
      <li><a data-toggle="tab" href="#attendance" onclick="showHideRedrawAttendanceAvg(attendance, 'Monthly')">Monthly</a></li> 
      <li><a data-toggle="tab" href="#attendance" onclick="showHideRedrawAttendanceAvg(attendance, 'Quarterly')">Quarterly</a></li> 
      <li><a data-toggle="tab" href="#attendance" onclick="showHideRedrawAttendanceAvg(attendance, 'Yearly')">Yearly</a></li> 
     </ul> 
    </li> 
    <li class="dropdown-submenu"> 
     <a href="#">Attendance Total</a> 
     <ul class="dropdown-menu"> 
      <li><a data-toggle="tab" href="#attendance" onclick="">Weekly</a></li> 
      <li><a data-toggle="tab" href="#attendance" onclick="showHideRedrawAttendanceCount('Monthly')">Monthly</a></li> 
      <li><a data-toggle="tab" href="#attendance" onclick="showHideRedrawAttendanceCount('Quarterly')">Quarterly</a></li> 
      <li><a data-toggle="tab" href="#attendance" onclick="showHideRedrawAttendanceCount('Yearly')">Yearly</a></li> 
     </ul> 
    </li> 
</ul> 
+0

html 코드도 표시 – Roopendra

+0

redrawAttendanceTree/drawAttendanceTree는 다른 이름입니다. 예제 코드에서 오타입니까? –

+2

'function drawAttendanceTree (''그러나 당신은'redrawAttendanceTree'를 호출합니다. – JoDev

답변

1

당신이

redrawAttendanceTree(agagfadfg); 

redrawAttendanceTree 기능은 당신이 준 코드 샘플에 정의되지 않은, 그래서 당신이 존재하지 않는 함수를 호출하려한다는 오류가 발생하지 호출 할 때.

drawAttendanceTree 코드 샘플에서는 호출되지 않습니다.

0

자바에서 함수 오버로딩이 다른 언어에서와 같이 작동하지 않습니다. Javascript에서는 함수에서 매개 변수가 적기 때문에 서명이 다르다는 것을 의미하는 것이 아니라 이름이 중요합니다.

function showHideRedrawAttendanceCount(agagfadfg) 

가 호출되지 얻을 않을 것이다 이런 식으로.

아직 시도하고있는 것을 달성하려면 자바 스크립트에서 함수 오버로드를 최상으로하는 방법에 대해 this thread을 시도하십시오.

관련 문제