2009-04-22

ui.datepicker.js 會破壞 Visual Studio 2008 的 intellisense

在引入 jQuery ui 套件中的 ui.datepicker.js 之後, 出現了 "'jQuery.support.htmlSerialize' 是 null 或不是一個物件" 的錯誤, 造成 VS2008 的 intellisense 失效, 雖然並不是那麼依賴 intellisense, 但是看到錯誤訊息就是不舒服, 所以就花了點時間找了一下到底是什麼地方造成的錯誤, 當然先從最可疑的部分(非 funciton 定義的 code)開始找, 在最底部發現以下的 code:

$.datepicker = new Datepicker(); // singleton instance
$.datepicker.initialized = false;
$.datepicker.uuid = new Date().getTime();
$.datepicker.version = "1.7";

把它們註解掉之後, 錯誤就消失了, 找到錯誤來源之後就該想個辦法來解決了, 於是稍稍修改一下第一行那個 singleton instance 的 code 如下:

$.datepicker = ($.support) ? new Datepicker() : {};

問題就解決了!!

 

註: 此修改僅針對 jquery 1.3jquery-ui 1.7, 其他版本沒有試過!

 

keywords: jquery, datepicker, ui, vs2008, intellisense, htmlSerializer