0

我有 2 个功能可以做同样的事情。一种有效,一种无效。

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,只留下了 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>
4

2 回答 2

1

你打电话时

redrawAttendanceTree(agagfadfg);

redrawAttendanceTree函数未在您提供的代码示例中定义,因此会出错,指出您正在尝试调用不存在的函数。

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

于 2013-03-08T15:56:23.007 回答
0

Javascript 中的函数重载不像其他语言那样工作。在 Javascript 中,仅仅因为你在函数中有一个参数 less 并不意味着它有不同的签名,而是它的名字很重要。

这边走

function showHideRedrawAttendanceCount(agagfadfg)

永远不会被调用。

为了仍然实现您正在尝试的内容,请尝试这个线程,了解如何在 Javascript 中最好地重载函数。

于 2013-03-08T16:02:25.097 回答