2009-01-29 6 views
8

Ich habe Probleme, jQuery mit DokuWiki gut zu spielen - hat jemand das schon erfolgreich gemacht?Kann DokuWiki & jQuery zusammen spielen?

Im Moment, einschließlich jQuery reuslts in allen Arten von JS-Funktionalität zu brechen, und ich habe Probleme beim Aufspüren der Quelle des Problems. Was sind einige Dinge zu beachten, die zu Konflikten mit jQuery neigen?

Antwort

16

Ich bin nicht mit DokuWiki persönlich vertraut, aber wenn etwas nur brechen, wenn Sie jQuery sind, dann ist es wahrscheinlich ein Konflikt mit den Variablen ‚$‘ in jQuery. Sie können rund um das, mehr Informationen hier jQuery noConflict Methode zu erhalten verwenden: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

Siehe auch dieser Stack-Überlauf Beitrag: jQuery & Prototype Conflict

+6

AFAIK, fügten die nur Elemente zur globalen Namensraum sind $ und jQuery (welche sind Synonyme). Mit noConflict() reduziert dies auf nur jQuery. Hoffentlich referenziert DokuWiki nichts mit jQuery im globalen Namespace;) –

6

Sie können in der Regel alle jQuery Konflikte vermeiden, indem Sie die folgenden rechts, nachdem Sie laden jquery.js:

jQuery.noConflict(); 

Dann wird es die $ Variable nicht überschreiben, die am häufigsten ist die Quelle der Probleme in diesen JS Bibliothekskonflikte. Sie müssen jedoch jQuery-Funktionen mit jQuery aufrufen. Beispiele:

jQuery(function() { ... }); // $(function ... 
jQuery(".klass").hide(); // $(".klass" ... 
0
jQuery.noConflict(); 

Dann können Sie jQuery("your element selector") oder was auch immer anstelle von $ verwenden. Um die schönere $ in Ihrem Code zu verwenden wickeln nur eine Funktion um es so auf:

jQuery.noConflict() 
(function($) { 
    $("your element selector").whatever(); 
})(jQuery) 

Weitere in den Antworten beschriebenen Vorteile What is the benefit of wrapping a jquery function in a closure?