2010-07-28 106 views

回答

8

除了noConflict之外,還有更多。

jQuery是一個侵入性庫。它爲每個觸及的元素添加一個內部的jQuery123(對於一些隨機的每個實例值123)屬性(這是因爲數據或事件處理程序等原因)。在IE中,這個屬性也被反映爲屬性。因此,如果MooTools或任何其他庫(或者實際上,一個普通的DOM方法)出現並開始搞亂那些屬性/屬性,克隆元素或者黑客攻擊,他們可能會搞砸這些據稱獨特的標識符,導致jQuery感到困惑,並以非常難以調試的方式開始行爲不端。

jQuery還擺弄了一堆事件代碼,試圖使提交/焦點/模糊/ focusin/focusout/mouseenter/mouseleave事件工作和跨瀏覽器冒泡。這可能會混淆不期望它的其他庫代碼。

所以,使用jQuery 1.4,你可以放棄使用另一個庫的同時,只要他們正在處理不相互作用的單獨元素。 (jQuery 1.3對於它所觸及的元素也更加混雜)。

但是總的來說,我不會在一個頁面上推薦兩個主要的框架。

0

只需使用jQuery.noConflict將jQuery分配給別的東西比$

<script> 
    jQuery.noConflict(); 
</script> 

$現指無論你將它設置爲您發起的jQuery之前。通過jQuery對象可以訪問jQuery。

2

jQuery的可以在任何衝突中使用模式:

jQuery.noConflict();

或者可以使用jQuery,而不是$

jQuery('#myelement').hide();

除了在MooTools的有一個document.id()方法,可以用來代替$

document.id('myelement');

如果你希望能夠使用$你可以試試片段如下:

(function($) { 

    $('#myelement').click(function() { 
     ... 
    }); 


})(jQuery); 

以相同的方式,您可以使用MooTools的$

0

是的,當然可以,在兼容模式下。但是你必須小心jQuery的補充,因爲它可能會導致一些麻煩,因爲它們沒有在兼容模式下編程,並可能導致與其他庫的補充衝突。 要解決這個問題,你只需要在補碼

希望這有助於改變$ jQuery。

1

在Mootools中使用美元安全模式,您應該可以,因爲jQuery不會擴展本地文件。

相關問題