2013-07-26 38 views
0

我試圖從較老的版本升級到JQuery 1.10。不幸的是,升級之前工作的代碼會導致失敗,此錯誤:如何確切地確定哪個方法引發此錯誤:Javascript:Object不支持此屬性或方法

微軟JScript運行時錯誤:對象不支持此屬性或方法

這不幸的是,該消息並沒有告訴我到底是哪方法或屬性導致此錯誤。

舉個例子,我收到此錯誤試圖調用一個對話框顯示:

$('#RepSearchDialog').dialog({ 
     autoOpen: true, 
     width: 1050, 
     height: 500, 
     resizable: false, 
     title: 'Rep Search', 
     modal: true, 
     open: function() { 
     ClearRepSearchCriteriaFields(); 
     ClearRepSearchResults(); 
     $('.ui-dialog-titlebar').hide(); 
     $('#RepSearchStoreId').val($('#StoreId').val()); 
     $('#RepSearchStoreId').focus(); 
     $('input[name="RepSearchOption"]:checked').removeAttr('checked'); 
     $('input[name="RepSearchOption"]')[4].checked = true; 

     window.RepSearchDialog_SearchForReps(); 
     } 
    }); 

這不是明顯對我哪個屬性或方法調用導致對話框調用失敗。我如何才能獲得導致此失敗的確切屬性或方法的信息?

這使得升級非常非常痛苦。

+3

按F12鍵並使用內置的調試控制檯查看牀單編號。 –

+0

凱文,它只是指向我上面列出的代碼行。然後它說:「Uncaught TypeError:Object [object Object] has no method'dialog'」咦?那麼爲什麼不.dialog()工作了? WTF? –

+2

有些事情干擾'$(「#RepSearchDialog」)'返回一個正確的jQuery對象。要麼,要麼你沒有成功加載jQuery UI(也許你還需要升級它)。 – Barmar

回答

1

這聽起來像你已經下載jQueryUI分段和錯過了一些片斷。嘗試從CDN拉,看看是否能解決問題:

// pull from MS' CDN 
<script src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.3/jquery-ui.js"></script> 

是否能解決它,然後要麼拉下完整的圖書館在本地加載,或使用download builder得到你需要的零部件(和唐不要取消依賴關係!)

+0

這似乎是這種情況。我從JQuery UI站點下載。有大約20多個文件,顯然我需要爲每個我現在要使用的「小部件」添加一個ref,而不是簡單地將ref添加到單個.ui.js文件中。我得到了一個DatePicker的錯誤,然後是對話框,然後是一個按鈕...我還有一個錯誤,我不明白什麼時候頁面加載第一次,但主要問題似乎解決了所有包括refs所有控制。謝謝。 –

+0

那麼,用下載構建器,當你選擇你需要的那個,它應該仍然只創建一個只有你選擇的小部件的jQuery.ui.js文件。例如,我在我的一個項目中有一個'jquery-ui-1.10.3.custom.js'文件,它只包含'datepicker'和'autocomplete'。 – Mathletics

相關問題