2009-09-14 139 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