Javascript try…catch-2个相同的调用,只有一个有效
我正在重新设计菜单/子菜单-只是将子菜单从页面底部的某个位置移动到相应菜单项下。现在,相同的子菜单(操作)在页面中出现了两次,只有一次是隐藏的,并在jQuery鼠标悬停时显示。在这两个菜单中,我都有一个选项指向一个带有try…catch块的函数 问题是,当使用jQuery显示的操作时,Javascript在try块中崩溃(“something”是未定义的-经典),就像“try”一词根本不存在一样。我使用了firebug调试器,在使用另一个子菜单时也会发生相同的错误,但这只是被跳过,并且执行了来自内部catch的代码 我只是不明白这怎么可能,因为两个选项调用相同的函数,而不是两个“相同”的函数 有什么想法吗?谢谢:) 编辑I:Javascript try…catch-2个相同的调用,只有一个有效,javascript,Javascript,我正在重新设计菜单/子菜单-只是将子菜单从页面底部的某个位置移动到相应菜单项下。现在,相同的子菜单(操作)在页面中出现了两次,只有一次是隐藏的,并在jQuery鼠标悬停时显示。在这两个菜单中,我都有一个选项指向一个带有try…catch块的函数 问题是,当使用jQuery显示的操作时,Javascript在try块中崩溃(“something”是未定义的-经典),就像“try”一词根本不存在一样。我使用了firebug调试器,在使用另一个子菜单时也会发生相同的错误,但这只是被跳过,并且执行了来自
function export_pdf() {
try {
ReportType=document.forms["down"].elements["ReportType"].value;
}
catch (e) {
ReportType='TDR_Report';
}
//other code...
}
错误是“document.forms.down.elements.ReportType未定义”
谢谢
编辑II:
function export_pdf() {
try {
ReportType=document.forms["down"].elements["ReportType"].value;
}
catch (e) {
ReportType='TDR_Report';
}
//other code...
}
调用函数:
onclick="export_pdf();"
在这种情况下,我会尽量避免尝试。。捕获并测试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...
}
要编辑您的帖子,请单击javascript标记下方的
编辑
按钮,输入修订,完成后单击保存编辑
按钮。您可以演示如何调用此功能吗?谢谢,我已经尝试过了。不再崩溃了。。。至少,不在这个函数中。我想我会让这个想法一直延续到新的设计——花太多的时间在这么少的东西上。再次感谢:)在javascript中,我总是试图绕过try..catch,我总是试图在异常出现之前阻止异常。试捕似乎从来没有像它应该的那样可靠。。