如何检查是否已加载jQuery UI Position

3

jQuery自带一个本地的.position()函数,可以获取元素相对于页面位置的定位值。

jQuery UI扩展了同样的函数,允许修改元素的定位。

如何检查页面中是否加载了jQuery UI版本的.position()

遗憾的是,这不仅仅是检查页面上是否加载了jQuery UI,因为.position()插件扩展不是jQuery UI核心库的一部分,这意味着某个地方可能已经加载了jQuery UI框架,但是没有加载.position()插件,导致链接的jQuery UI检查失败。

2个回答

2
主要区别在于函数定义中参数的数量。标准的jQuery库没有参数,而jQuery UI则有一个参数。如果您可以确定函数定义中有多少个参数,则可以确定哪个库的函数正在使用。
幸运的是,这很容易做到。函数的length属性告诉您函数定义中有多少个参数。因此,如果$.fn.position.length0,则该函数属于标准的jQuery库;如果是1,则它属于jQuery UI库。
因此:
if ($.fn.position.length === 1) {
    // jQuery UI position method loaded
}

感谢分享,我今天学到了 Javascript 中的 (function).length。我发现另一种方法,有点更喜欢它(因为对我来说更易读),但我会等待一下,以防有人对我的解决方案提出兼容性或其他问题。非常感谢!+1 - Richard Neil Ilagan
@RichardNeilIlagan 不,你的方法更好! - lonesomeday

1

哎呀,等等;我想我找到它了。

加载了jQuery UI的页面确实会初始化jQuery.ui(对于jQuery UI检查来说这很好),但那些还内嵌了.position()插件的页面也会将jQuery.ui.position初始化。

看来我在SO上询问后5分钟就找到答案了。 :-/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接