所以我有一個使用Prototype和Mootools AJAX腳本的頁面。原型/ Mootools衝突問題
Prototype有很多Mootools,所以我想知道Prototype是否有類似於jQuery的$j = jQuery.noConflict();
的函數,我可以使用它來重新定義Prototype的$別名?
謝謝!
所以我有一個使用Prototype和Mootools AJAX腳本的頁面。原型/ Mootools衝突問題
Prototype有很多Mootools,所以我想知道Prototype是否有類似於jQuery的$j = jQuery.noConflict();
的函數,我可以使用它來重新定義Prototype的$別名?
謝謝!
MooTools的最新版本的有沒有衝突模式。不幸的是,Prototype沒有,這意味着$
必須綁定到Prototype。
要啓用美元安全模式,請升級您的MooTools版本,並確保在Prototype之後包含MooTools。
<script type="text/javascript" src="prototype.js" />
<script type="text/javascript" src="mootools.js" />
這樣做後,$
將綁定到Prototype。在MooTools腳本中,將所有$
引用替換爲document.id
。
// Before
var X = new Class({
initialize: function(element){
this.element = $(element);
}
});
// After
var X = new Class({
initialize: function(element){
this.element = document.id(element);
}
});
,或者你可以使用閉包:
(function(){
var $ = document.id;
this.X = new Class({
initialize: function(element){
this.element = $(element);
}
});
})();
對美元安全模式的更多信息,MooTools的博客提供:
我有一個非常簡單的解決方案:
<script src='mootools.js'></script>
<script>$moo = $; delete ($);</script>
<script src='prototype.js></script>
<script>
(function ($){
//here you can use $ of moo tools
})($moo);
//here you can use $ of prototype
</script>
謝謝,我希望Prototype有類似的東西,因爲它到目前爲止是較小的實現,但是自然,一個人從來沒有這麼幸運。 – Marty 2009-11-12 15:54:52
儘管我確實同意你不需要200 kb(壓縮)庫,但MooTools的67 kb壓縮格式非常令人尊敬。不要將您的選擇放在尺寸上,而應放在功能上。 MooTools可以完成Prototype所做的一切,我會建議您放棄Prototype。此外,使用該網站做一個自定義的MooTools構建並刪除任何你不需要的東西。 – 2009-11-12 22:39:03