Javascript尝试...捕获 - 2个相同的调用,只有一个工作

时间:2012-09-18 13:14:33

标签: javascript

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

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

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

有什么想法?谢谢:))

编辑I:

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

            //other code...
}

错误是“document.forms.down.elements.ReportType未定义”......

谢谢!

编辑II:

调用该函数:

onclick="export_pdf();"

1 个答案:

答案 0 :(得分:0)

在这种情况下,我只是试图避免try .. catch并测试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...
}