3

jQuery 有一个.position()开箱即用的原生函数,它可以获取元素相对于其在页面上的位置的定位值。

jQuery UI扩展了相同的功能以允许修改元素的定位。

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

可悲的是,这不仅仅是检查页面上是否加载了 jQuery UI 的问题,因为.position()插件扩展不是jQuery UI 核心库的一部分,这意味着某个地方的人会在没有.position()插件的情况下加载 jQuery UI 框架,并且链接的 jQuery UI 检查将失败。

4

2 回答 2

2

主要区别在于函数定义中的参数数量。标准的 jQuery 库有 0;jQuery UI 有 1 个。如果你能知道函数定义中有多少个参数,你就可以知道哪个库的函数存在。

幸运的是,这很容易做到。函数的length属性告诉您函数定义中有多少参数。所以如果$.fn.position.length0,函数就是标准jQuery库的函数;如果是1,那就是 jQuery UI 库。

所以:

if ($.fn.position.length === 1) {
    // jQuery UI position method loaded
}
于 2012-09-11T20:49:21.727 回答
1

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

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

我在 SO 上提问 5 分钟后找到答案的数字。:-/

于 2012-09-11T20:49:39.853 回答