2012-09-11 45 views
3

jQuery具有a native .position() function开箱即可获取元素相对于页面位置的定位值。如何检查jQuery UI位置是否已加载

jQuery UI extends that same function允许修改元素的位置。

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

可悲的是,它不只是一个checking whether jQuery UI is loaded页面或不上的问题,因为在.position()插件扩展了jQuery UI核心库一部分,这意味着有人的地方就会有一个jQuery UI框架加载没有.position()插件,链接的jQuery UI检查将失败。

回答

1

Woops,等待;我想我找到了它。

与jQuery UI页面加载确实会对jQuery.ui初始化(这会做得很好的jQuery UI检查),但那些与.position()插件的出炉,以及将有jQuery.ui.position初始化为好。

数字,我找到答案5分钟后询问SO。 : -/

2

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

幸运的是,这很容易做到。函数的length属性告诉你函数定义中有多少个参数。因此,如果$.fn.position.length0,则该函数是标准jQuery库的函数;如果它是1它是jQuery UI库。

所以:

if ($.fn.position.length === 1) { 
    // jQuery UI position method loaded 
} 
+0

感谢您分享,并在Javascript中使用关于'(function).length'的TIL。我找到了另一种方式,我更喜欢这个(有点是因为它对我来说更具可读性),但是我会等待有人对我的兼容性解决方案或其他解决方案提出质疑。 :D非常感谢! +1 –

+0

@RichardNeilIlagan不,你的方式更好! – lonesomeday

相关问题