2010-07-28 8 views

Antwort

8

Es gibt mehr als nur noConflict.

jQuery ist eine aufdringliche Bibliothek. Es fügt eine interne jQuery123 (für einige randomisierte pro-Instanz Wert von 123) -Eigenschaft zu jedem Element, das es berührt (was unter anderem mit Daten oder Event-Handler ist). In IE wird diese Eigenschaft auch als Attribut wiedergegeben.

Also, wenn MooTools oder eine andere Bibliothek (oder in der Tat, eine einfache DOM-Methode) kommt und beginnt mit diesen Eigenschaften/Attribute oder Klonen Elemente hacken oder innerHTML hacken, werden sie wahrscheinlich vermasselt diese angeblich einzigartig Bezeichner, die dazu führen, dass jQuery verwirrt wird und sich schlecht benimmt, wenn es extrem schwierig zu debuggen ist.

jQQuery fiedelt auch eine Menge von Ereigniscode, um zu versuchen, submit/focus/blur/focusin/focusout/mouseenter/mouseleave Ereignisse zu erstellen und über Browsern hinweg zu blasen. Dies kann Code anderer Bibliotheken verwechseln, der dies nicht erwartet.

Mit jQuery 1.4 können Sie so schnell wie möglich mit einer anderen Bibliothek gleichzeitig arbeiten, solange sie an separaten Elementen arbeiten, die nicht miteinander interagieren. (jQuery 1.3 war auch viel promiskuitiver bezüglich der Elemente, die es berührte.)

Aber im Allgemeinen würde ich nicht zwei Hauptframeworks auf einer Seite empfehlen.

0

einfach jQuery.noConflict verwenden jQuery, um etwas anderes als $ zuweisen:

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

$ jetzt bezieht sich auf alles, was Sie setzen ihn auf, bevor Sie jQuery ausgelöst. Auf jQuery kann über das Objekt jQuery zugegriffen werden.

2

jQuery im Hand-Konflikt-Modus verwendet werden:

jQuery.noConflict();

oder könnte jQuery statt $ verwenden.

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

Wie in MooTools gibt es eine document.id() Methode, die anstelle von $ verwendet werden könnten:

document.id('myelement');

Falls Sie ein $ zu verwenden, um der Lage sein, Sie das Snippet versuchen können, unten:

(function($) { 

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


})(jQuery); 

Auf die gleiche Weise können Sie $ von MooTools verwenden

0

Ja, natürlich können Sie, im Kompatibilitätsmodus. Aber Sie müssen vorsichtig mit den jQuery-Ergänzungen sein, weil es einige Kopfschmerzen verursachen kann, da sie nicht im Kompatibilitätsmodus programmiert sind und Zusammenstöße mit anderen Bibliotheken verursachen können. Um dies zu beheben, müssen Sie nur $ pro jQuery in den Ergänzungen ändern

hoffe das hilft.

1

Verwenden Sie Dollar-Safe-Modus in Mootools und Sie sollten in Ordnung sein, da jQuery Natives nicht erweitert.