2012-09-18 69 views
0

我正在重新設計菜單/子菜單 - 只是將子菜單從頁面底部的某個位置移動到其相應的菜單項下。現在,在頁面中發現了兩次相同的子菜單(操作),只有在鼠標懸停時使用jQuery隱藏和顯示其中一個時間。在這兩個菜單中,我都有一個指向帶try ... catch塊的函數的選項。Javascript try ... catch - 2個相同的調用,只有一個工作

問題是,當使用jQuery顯示的動作時,try塊中的JavaScript崩潰(「something」未定義 - 古典),就像'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未定義」 ......

謝謝!

編輯II:

調用函數:

onclick="export_pdf();" 
+1

任何代碼向我們顯示幫助? – TommyBs

+0

某些代碼會幫助 – BLSully

+0

要編輯您的帖子,請點擊javascript標籤下方的'edit' **按鈕,輸入修訂版本,完成後點擊** Save edit按鈕。 – 0x499602D2

回答

0

在這種情況下,我只想盡量避免嘗試..漁獲物和測試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... 
} 
+0

謝謝,我試過了。不會再崩潰......至少,不是在這個功能。我想我會讓這個想法一直持續到新的設計 - 太多的時間花在這麼少的事情上。再次感謝:) – die2901

+0

在javascript中,我總是試圖繞過try..catch,我總是試圖在彈出之前防止異常。 try..catch從來沒有像它應該那樣可靠地工作。 – SvenFinke

相關問題