传递的变量变为未定义的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”)更容易使用。