2012-03-29 40 views
9

Tôi đang tạo một tập lệnh trong JS sẽ được gọi từ các trang bên ngoài, nhưng mã của tôi yêu cầu Jquery làm việc, đặc biệt 1.7 và 1.8 cho giao diện người dùng, tôi đã tìm cách kiểm tra xem jquery có được cài đặt hay không và nhận phiên bản:Làm cách nào để phát hiện xem giao diện người dùng Jquery và Jquery có được cài đặt hay không và phiên bản nào được cài đặt?

$().jquery 

Nhưng điều này sẽ cho tôi trở lại một chuỗi có dấu chấm (1.6.1); đã có một chức năng để kiểm tra xem phiên bản đã cài đặt có lớn hơn phiên bản mà tôi yêu cầu không?

Tôi cũng cần tương tự cho các thư viện giao diện người dùng, tôi thấy điều này nhưng tôi không phải là rất chắc chắn nếu nó hoạt động đúng cách, hoặc có lẽ tôi không biết làm thế nào o sử dụng nó:

//Get version: 
$.ui.version 
//Comnpare version 
var version_required = 1.7.1 
version = $.ui ? $.ui.version || "pre "+version_required : 'not found'; 

Cảm ơn

Trả lời

15

Điều này có thể làm việc cho bạn:

if (typeof jQuery != 'undefined' && /[1-9]\.[7-9].[1-9]/.test($.fn.jquery)) { 
    // jQuery is loaded and is at least version 1.7.1 
} 

tương tự như vậy, nó gần như giống nhau cho giao diện người dùng:

if (typeof jQuery.ui != 'undefined' && /[1-9]\.[7-9].[1-9]/.test($.ui.version)) { 
    // jQuery UI is loaded and is at least version 1.7.1 
} 

Đầu tiên nó kiểm tra để đảm bảo jQuery có sẵn và sau đó nó sử dụng một số mẫu regex đơn giản để kiểm tra xem các số phiên bản nằm trong phạm vi có thể chấp nhận được hay không.

+1

Rất thanh lịch. Tuy nhiên, bạn nên kiểm tra regex bằng cách sử dụng 'jQuery' vì không có sự bảo đảm rằng' $ 'thực sự là đối tượng jQuery. Nó có thể được ghi đè hoặc 'jQuery.noConflict()' có thể đã được gọi. xem http://api.jquery.com/jQuery.noConflict/ –

+0

Điều này làm việc khá tốt, cảm ơn rất nhiều! –

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