J'utilise les onglets d'outils JQuery Tools et j'utilise en même temps JQuery UI. P>
Si j'inclus les bibliothèques JS, JQuery Tools avec des onglets ne fonctionne pas. P>
Comment réparer ce conflit? Toute aide est appréciée. P>
Merci d'avance. P>
6 Réponses :
Vous pouvez obtenir une construire JQuery-UI personnalisée qui n'inclut pas les onglets, mais cela pourrait provoquer une certaine confusion ultérieurement. Une meilleure approche, IMHO, serait d'éditer les onglets d'outils JQuery-Tools Code> et de modifier cette ligne: à quelque chose comme ceci: p> < PRE> XXX PRE> J'ai utilisé "FPTABS" pour "FlowPlayer.org Tabs", vous pouvez utiliser tout ce que le nom fonctionne pour vous. Cela devrait effacer vos conflits sans causer de problèmes nulle part ailleurs. Bien sûr, vous devez vous rappeler que vous avez changé TABS.JS CODE> Si vous effectuez une mise à niveau, mais cela devrait être moins gênant que de gâcher avec un
JQuery-ui.js tout-terrain code> fichier. p> p>
jquery-ui a des onglets et a pris $. onglets code> pour son propre usage, les onglets JQuery-Tools à partir de flowplayer.org souhaitent également utiliser
$. onglets code> dans son
tabs.js code> modifier le
onglet.js code> de flowplayer.org comme ci-dessus et le conflit devrait partir. Bien sûr, vous devrez héberger votre propre copie de
ticts.js code> pour que cela fonctionne.
Je l'ai compris en nommant les onglets FlowPlayer. Merci.
J'ai passé la semaine dernière à chasser cette question. Votre solution a fonctionné, mais je devais désinformer jquery.tools.min.js v1.2.7, qui a été inclus dans le plug-in WP Linkedin WordPress. Merci!
@BOBJONES: Vous pourrez peut-être vous déplacer avec quelques patchs de singe et contrôler soigneusement l'ordre de chargement. (1) Charger jquery.tools.min.js code>. (2) corrigez les noms avec quelque chose comme
$. Fn.fptabs = $ .fn.tabs; Supprimer $ .fn.tabs code>. (3) Chargez le JavaScript JQuery UI. Je ne sais pas à quel point cela fonctionnerait bien avec un plugin WP. Ce type de piratage vous permettrait également de tout retirer un CDN. Je pense que c'est le genre de chose que Carl G suggère ci-dessus .
Il y a une méthode plus facile. Chaque fois que vous utilisez jQuery avec d'autres bibliothèques (Outils | Prototype | Maotools | etc.) Vous pouvez utiliser une fonction NOCONFLICT spéciale pour réaffecter la variable $ à une autre variable. Par exemple: ou vous pouvez être plus explicite et utiliser jQuery.somefunction () au lieu de $ .Somefunction. P> p>
Je ne sais pas comment cela vous aide. Les outils JQuery Ui et JQuery sont construits sur jQuery. Le problème est que les deux essaient de définir une fonction sur les objets jQuery nommés onglets code>. Donc, même si j'utilise votre méthode de renommage JQuery, lorsque j'utilise JQuery pour obtenir un objet JQuery (qui est la première étape habituelle pour utiliser JQuery UI ou JQuery Tools), le conflit existe dans l'objet retourné.
Vous pouvez construire votre propre interface utilisateur JQuery dans cette URL http://jqueryui.com/download p>
Seuls les outils de sélection que vous avez besoin et n'incluent pas l'onglet Composant dans les options pour éviter les conflits avec JQuery Tools P>
p>
Dans mon cas, je modifie le nom de la fonction d'onglets JQueryTools. de:
p> à: p> donc je n'ai pas eu à changer jQuery-ui-outils , cela est utile si vous obtenez ce script de CDN. P> p>
Notre solution consiste à inclure des bibliothèques complètes de JQuery UI et de JQuery Tools, mais d'intervenir une petite solution JavaScript que renomme les onglets code> de JQQUERY UI de sorte qu'il n'interfère pas avec JQuery Tools (qui contient le
onglets code> Caractéristique que nous utilisons sur notre site.) Nous importatons d'abord JQuery UI, puis effectuez le correctif, puis importer JQuery Tools.
jquery-ui-jqueryTools-tabsconflictfix.js: h3>
namespace OurWebApp
{
public class BundleConfig
{
/// <summary>
/// Good Bundling resource, succinctly highlighting a range of ways to use this feature:
/// http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification
/// </summary>
/// <param name="bundles"></param>
public static void RegisterBundles(BundleCollection bundles)
{
...
bundles.Add(new ScriptBundle("~/js/jquery-ui-and-tools").Include(
"~/Scripts/jquery-ui-1.9.2.min.js",
// Both jQuery UI and jQuery Tools define .tabs on jQuery objects. We use
// jQuery Tools' version, and this fix renames jQuery UI's version to get it out of the way.
// So the load order must be: jQuery UI, the fix, and then jQuery Tools
"~/Scripts/jquery-ui-jquerytools-tabsconflictfix.js",
"~/Scripts/jquery-tools-1.2.7.min.js"));
...
}
}
}
Ou $. Fn.fptabs = $ .fn.tabs; Supprimer $ .fn.Tabs code> si vous voulez le faire, l'inverse.
Cette question spécifique concerne un conflit entre la fonction d'onglets dans JqueryTools et JQueryui et non entre les bibliothèques qui souhaitent utiliser les "$" et que les commentaires de NOCONFLICT ne sont pas pertinents.
Vous devez redéfinir la fonction TABS (de la bibliothèque) comme on est chargé et avant la charge suivante. p>
Tout d'abord, vous chargez votre bibliothèque JQuery et JQueryTools ... p>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>