2012-03-29 189 views
9

我在JS中创建了一个脚本,将从外部网站调用,但我的代码需要Jquery才能工作,特别是1.7和1.8的UI,我发现了一种方法来检查jQuery是否已安装并获取版本:如何检测是否安装了Jquery和Jquery UI,以及安装了哪些版本?

$().jquery 

但是这会给我带点(1.6.1)的字符串;是否已经有一个函数来检查安装的版本是否比我需要的更早?

我还需要对UI库一样,我发现这一点,但我不是很肯定,如果它工作正常,也许我不知道如何Ø使用它:

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

感谢

回答

15

这可能会为你工作:

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

同样,它几乎UI的一样:

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 
} 

首先它检查以确保jQuery可用,然后使用一些简单的正则表达式模式来测试版本号是否在可接受的范围内。

+1

非常优雅。不过你应该使用'jQuery'来测试regex,因为不能保证'$'实际上就是jQuery对象。它可能被覆盖,或者可能调用了'jQuery.noConflict()'。看到http://api.jquery.com/jQuery.noConflict/ – 2012-03-30 00:12:10

+0

这工作得很好,非常感谢! – 2013-11-12 17:48:24