2009-09-14 120 views
1

我有一个复杂的书签,做很多事情,并且依靠
倚重jQuery的和一些插件(UI,缓和,等。jQuery和插件无冲突书签

事情是,我不知道jQuery或其他插件是否已经包含在当前页面的
,所以我不能冲突他们,
但也需要我的文件是可维护的。

有没有人有任何想法如何做到这一点?
某种Clousers也许?

非常重要的是我的附加jQuery.UI库不会发生碰撞与页面的人。

回答

1

最简单的方法是,包括这在你的书签的开头:

$myjq = jQuery.noConflict(); 

对于其余该程序使用$myjq而不是$,如下所示:

$myjq("#someId"); 
+1

我知道这一点,但这并不能解决插件冲突。因为它们解决了jQuery而不是noConlict问题 – vsync 2009-09-14 15:50:00

0

检查Documentation entry about this

jQuery通常与使用$关键字的原型和其他库一起很好地工作。

编辑: 使用jQuery.noConflict()技巧可以防止其他库(prototype,mootools等)出现问题。

您可以随时检查是否jQuery是已经包括自己,包括前:

<script language="javascript"> 
    if(!jQuery){ 
     document.write('<script type="text/javascript" src="/js/jQuery.js"></script>'); 
    } 
</script> 
+0

和插件与页面自己的冲突? – vsync 2009-09-14 15:50:58

+0

你有一个想法,哪些网页可以是?文件中的程序是我所知道的唯一防止冲突的程序。 避免碰撞的一种方法是尝试并将所有功能(尽可能小的全局变量)放在一起,如果使用全局变量,请确保它们具有唯一的名称(与您的函数名称相同)。 – Powertieke 2009-09-16 06:49:37

+0

如何将我的所有插件放入Closure中,如果它们全都在它们的每个.js文件中?将它们复制到一个巨大的不可维护的关闭? – vsync 2009-09-18 08:45:56