Conflits de plugins Jquery

Comment résolvez-vous les conflits entre les plugins Jquery? Un conflit serait une situation dans laquelle deux plug-ins Jquery ou plus (tels qu’un plug-in de téléchargement de fichier) fonctionnent correctement seuls mais génèrent des erreurs ou un comportement inattendu lorsque vous incluez un second plug-in.

J’ai ce problème en ce moment et j’envisage d’utiliser un iframe pour isoler des sections de ma page de tout le rest. Mais je veux éviter cela si possible pour résoudre ces conflits.

L’audit du code du plugin n’est pas réalisable, ses montagnes de code et il y a des temps de développement courts à prendre en compte.

Je ne peux pas utiliser jquery.noConflict car je devrais le déclencher puis remplacer le $ par Jquery dans la ligne de mon code. La modification des plugins n’est pas possible. Je pensais que jquery.noConflict ne fonctionnait pas pour les plugins? Cela ne fonctionne que pour les bibliothèques javascript / jquery? Je ne parle pas aux bibliothèques. Juste des plugins comme des curseurs, des galeries, des fileuploaders, etc.

J’ai utilisé:

 (function($) { jQuery.noConflict(); 

});

Déjà..

Après quelques recherches sur le Web, j’ai trouvé des ressources.

  1. Jquery Plugin conflict

  2. Comment résoudre ce conflit de plugins jQuery?

  3. http://forum.jquery.com/topic/jquery-plugins-conflict

Et le dernier http://www.jotform.com/help/130-Fixing-Jquery-Plugin-Conflicts-jCarousel

Il semble que tout le monde suggère d’utiliser noconflict mais à l’exception du dernier qui a déclaré que cela fonctionnait – je ne vois aucune raison pour que cela fonctionne, car dans les documentations, JQuery explique qu’il était destiné aux bibliothèques qui n’utilisent pas JQuery mais se heurtent il. (voir la 3ème ressource que j’ai collée ici).

Quoi qu’il en soit, il semble que la meilleure option consiste à plonger dans le code et à le modifier.

J’ai eu un problème avec le conflit JQuery, mais mon cas était que j’avais également utilisé prototype.js. J’ai élaboré une solution pour cela. voici un pointeur à la caisse si cela peut aider.

Un conflit jQuery se produit lorsque “$” est également utilisé par d’autres plugins. par conséquent, nous devons définir jQuery.noConflict

de sorte que toutes les méthodes sont appelées en utilisant une autre référence dans ce cas, ‘jQuery’.

essayez d’inclure les fichiers de scripts sur la page comme suit.

  1. inclure tous les fichiers jQuery (la bibliothèque et tous les plugins qui dépendent de jQuery).
  2. fire jQuery.noConflict ();
  3. inclure toutes les autres bibliothèques / plugins.
  4. partout où les méthodes jquery sont appelées, utilisez “jQuery” plutôt que “$”

espérons que cela vous aide ..