2009-02-17 37 views
9

Tôi đã sử dụng jQuery IntelliSense trong VS2008 và nó đã được tuyệt vời. Gần đây tôi đã thêm một tham chiếu đến jQuery UI và kể từ đó, jQuery IntelliSense đã biến mất. Tôi thấy rằng một khi bạn tham khảo một tập tin .js trong tài liệu của bạn, IntelliSense biến mất. Bất kỳ cách nào để tránh điều này?Thêm các tệp js bổ sung vi phạm jQuery IntelliSense

Trả lời

13

Nếu có lỗi trong bất kỳ tệp được giới thiệu nào, nó sẽ phá vỡ intellisense cho tất cả các tệp tham chiếu từ cùng một tài liệu. Phiên bản tiếp theo của Visual Studio sẽ mạnh mẽ hơn nhiều về mặt này. Tôi xin lỗi trực tiếp vì sự mong manh này. Chúng tôi đã đưa ra một số quyết định thiết kế sớm về việc chúng tôi đã ngăn cản chúng tôi tạo ra các tham chiếu bên ngoài của VS9 mạnh mẽ hơn.

Trong thời gian chờ đợi, hãy sử dụng cách giải quyết sau. Cài đặt SP1 từ liên kết Slace đã cho bạn. Nếu bạn có một tham chiếu đến một tệp có tên là .js và có một tệp có tên -vsdoc.js trong cùng một vị trí, thì JS intellisense sẽ nhận phiên bản -vsdoc. Nếu tập lệnh đó trống thì nó sẽ không tạo ra lỗi. Xác định các plugin jquery đang gây ra các thế hệ intellisense thất bại và đặt một phiên bản -vsdoc bên cạnh nó. Bạn sẽ không nhận được intellisense cho giao diện người dùng, nhưng bạn vẫn sẽ nhận được jquery và plugin khác mà làm việc.

Bất cứ điều gì bạn đưa vào phiên bản Vsdoc đều sẽ hiển thị trong trạng thái intellisense. Bạn có thể đặt các phiên bản giả mạo của các cấu trúc dữ liệu mà bạn muốn hiển thị trong intellisense nếu bạn muốn.

8

Có thể có lỗi trong một trong các tệp JavaScript được tham chiếu một cách độc lập. Mở tập tin JS của bạn và một khi "Updaing JavaScript Intellisense" đã đi từ thanh trạng thái của Visual Studio (có một tùy chọn trình đơn mà sẽ buộc các intellisense JS để làm mới, không nhớ nó ở đâu, tôi chỉ tạo ra một phím tắt bàn phím thông qua các Công cụ -> Tùy chọn -> Khu vực bàn phím) mở cửa sổ Lỗi của bạn và trong Cảnh báo, bạn nên tìm lý do tại sao intellisense không tải được.

Thông thường, một lỗi được tìm thấy khi phân tích cú pháp một trong các tệp nhưng tôi đã bị tràn ngăn xếp khi tôi có nhiều tệp được tham chiếu.

Chỉnh sửa: Bạn cũng nên đảm bảo rằng bạn đã cài đặt bản vá VS này: http://code.msdn.microsoft.com/KB958502 và VS 2008 SP1 (cài đặt SP1 trước!). Sau đó, bạn chỉ cần có:

/// <reference path="/path/to/jquery-1.3.1.js" /> 

Đảm bảo rằng bạn duy trì -vsdocs vào file IntelliSense và nó sẽ được tự động nhặt (miễn là nó trong cùng thư mục với file bạn tham khảo)

+0

Lỗi này là "Lỗi khi cập nhật JScript IntelliSense: C: \ Users \ Brian \ Documents \ Visual Studio 2008 \ Projects \ jQueryTest \ jQueryTest \ jquery-1.3.1-vsdoc.js: 'jQuery.support.htmlSerialize' là null hoặc không phải là một đối tượng @ 1418: 4 " Tệp jscript tôi đang sử dụng là tệp giao diện người dùng jQuery và jQuery từ jquery.com –

+0

, có lẽ bạn nên gửi báo cáo lỗi cho MS sau đó –

+0

Tôi vẫn không thể để có được điều này để làm việc. Bất cứ ai ra có thể sử dụng jQuery với jQuery UI w/jQuery IntelliSense? –

8

Câu trả lời được chấp nhận đã giúp tôi khắc phục sự cố này nhưng không giải quyết được sự cố. Tôi đã cài đặt hotfix: http://code.msdn.microsoft.com/KB958502 nhưng vẫn nhận được lỗi.

Lỗi:

Error updating JScript IntelliSense: D:\Dev\Test\Scripts\jQuery-1.3.2-vsdoc.js: 'jQuery.support.htmlSerialize' is null or not an object @ 1430:4 

Có vẻ việc bổ sung các tập tin mà không follwing file -vsdoc.js thích hợp sẽ làm cho vấn đề trên.

<script src="../../Scripts/jquery-ui-1.7.custom.min.js" type="text/javascript"></script> 

tôi đã thêm một tập tin rỗng "jquery-ui-1.7.custom.min-vsdoc.js" để kịch bản của tôi thư mục và các vấn đề JScript Intellisense đi.

+2

Điều này là hoàn toàn vô lý rằng điều này hoạt động như một giải pháp, nhưng nó: \ WTF Microsoft !!! – Josh

+0

Không thể tin được, điều này thật ngớ ngẩn. – SoftwareGeek

1

Tôi giải quyết điều này theo lời khuyên ở trên với phần mở rộng nhỏ: mẹo cho tôi là thêm một tham chiếu trên trang của tôi vào cả thư viện jqueryui.com AND của tôi vào vsdoc trống.Phiên bản js của tệp tôi đã tạo:

<script type="text/javascript" src="../../Scripts/jquery-ui-1.7.2.custom.min.js"></script> 
<script type="text/javascript" src="../../Scripts/jquery-ui-1.7.2.custom.min-vsdoc.js"></script> 

Hy vọng điều này sẽ hữu ích!

+0

Liên kết thứ hai này chỉ cần thiết nếu bạn chưa cài đặt [patch] (http://code.msdn.microsoft.com/KB958502) – Casebash

1

Tuyệt vời, tinh chỉnh là tạo một tệp * -vsdoc.js trống cho mỗi tệp * .js phiền toái.

Tôi đã tìm thấy lỗi này do hàm ẩn danh gây ra, ví dụ: như thế này:

(function($) { 
    $.anything...; 
})(jQuery); 

Hy vọng điều này sẽ giúp ai đó tạo nhóm http://code.msdn.microsoft.com/KB958502 và JScript IntelliSense.

Các vấn đề liên quan