0

我正在重新设计菜单/子菜单 - 只需将子菜单从页面底部的某处移动到相应的菜单项下。现在,在页面中发现了两次相同的子菜单(操作),只有一次它在鼠标悬停时被 jQuery 隐藏和显示。在这两个菜单中,我都有一个选项指向带有 try...catch 块的函数。

这就是问题所在,当使用 jQuery 显示的操作时,Javascript 在 try 块中崩溃(“某事”是未定义的 - 经典),就像“尝试”这个词甚至不存在一样。我使用了 firebug 调试器,在使用其他子菜单时也会出现同样的错误,但这只是被跳过并执行了内部 catch 中的代码。

我只是不明白这是怎么可能的,因为这两个选项都调用了相同的函数,而不是 2 个“相同”的函数......

有什么想法吗?谢谢 :)

编辑我:

function export_pdf() {
            try {
                ReportType=document.forms["down"].elements["ReportType"].value;
            }
            catch (e) {
                ReportType='TDR_Report';
            }

            //other code...
}

错误是“document.forms.down.elements.ReportType is undefined”...

谢谢!

编辑二:

调用函数:

onclick="export_pdf();"
4

1 回答 1

0

在这种情况下,我会尽量避免 try .. 捕获并测试 ReportType。如果 ReportType 未定义,请手动设置该值。

function export_pdf() {

    if (document.forms["down"].elements["ReportType"] === undefined){
        ReportType = 'TDR_Report';
    } else {
        ReportType = document.forms["down"].elements["ReportType"].value;
    }

    //other code...
}
于 2012-09-18T13:50:02.750 回答