传递的变量变为未定义的javascript

传递的变量变为未定义的javascript,javascript,parameters,Javascript,Parameters,我有两个函数做同样的事情。一个工作,一个不工作 function showHideRedrawAttendanceAvg(chart, dataType) { $("#attendanceCount").addClass("hide"); $("#attendanceAvg").removeClass("hide"); redrawAttendance(chart, dataType);//Parameters are defined } function redraw

我有两个函数做同样的事情。一个工作,一个不工作

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
}
我不知道为什么这两个函数的行为不同。我甚至从文件中删除了所有javascript,只留下showHiderDrawAttendanceCount和RedDrawAttendanceCount函数,但它仍然不起作用

<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>
当你打电话时

redrawAttendanceTree(agagfadfg);
redrawatendancetree
函数未在您提供的代码示例中定义,因此,如果您试图调用一个不存在的函数,则会出现错误


drawAttendanceTree
从未在您提供的代码示例中调用。

Javascript中的函数重载与其他语言中的函数重载不同。在Javascript中,函数中的参数较少并不意味着它具有不同的签名,相反,重要的是名称

这边

function showHideRedrawAttendanceCount(agagfadfg)
永远不会接到电话


要实现您正在尝试的功能,请尝试如何在Javascript中最好地重载函数。

显示您的html代码以及Redrawatendancetree/drawAttendanceTree是不同的名称,这是示例代码中的输入错误吗?您创建了一个函数
函数drawAttendanceTree(
但是你调用
redrawatendancetree
否则,试着在调用之前添加
redrawatendancetree
定义。顺便说一下,jQuery方法
.hide()
show()
可能比
addClass(“hide”)
removeClass(“hide”)更容易使用。