2009-01-29 5 views
8

J'ai du mal à faire en sorte que jQuery joue bien avec DokuWiki - quelqu'un a-t-il déjà réussi à le faire?Est-ce que DokuWiki et jQuery peuvent jouer ensemble?

Pour le moment, y compris jQuery reuslts dans toutes sortes de fonctionnalités JS briser, et j'ai du mal à trouver la source du problème. Quelles sont les choses à rechercher qui ont tendance à entrer en conflit avec jQuery?

Répondre

16

Je ne suis pas familier avec DokuWiki personnellement, mais si quelque chose se brise juste au moment où vous incluez jQuery alors il est probablement un conflit avec la variable « $ » dans jQuery. Vous pouvez utiliser la méthode de noConflict jQuery pour se déplacer que, plus d'informations ici: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

Voir aussi cette pile après de trop-plein: jQuery & Prototype Conflict

+6

AFAIK, les seuls éléments ajoutés à l'espace de noms global sont $ et jQuery (qui sont des synonymes). L'utilisation de noConflict() réduit ceci à jusqu 'à jQuery. Heureusement, DokuWiki ne fait référence à rien de nommé jQuery dans l'espace de noms global;) –

6

Vous pouvez généralement éviter tout conflit jQuery en utilisant ce qui suit juste après que vous chargez jquery.js:

jQuery.noConflict(); 

Ensuite, il ne sera pas écraser la variable $, qui est le plus souvent la source de problèmes dans ces JS conflits de bibliothèque. Cependant, vous devrez appeler les fonctions jQuery en utilisant jQuery. Exemples:

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

Ensuite, vous pouvez utiliser jQuery("your element selector") ou autre au lieu de $. Pour utiliser la plus belle $ dans votre code juste envelopper une fonction autour d'elle comme ceci:

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

avantages supplémentaires décrits dans les réponses aux What is the benefit of wrapping a jquery function in a closure?

Questions connexes