Comment utiliser require.js pour charger avec jQuery noConflict
Je suis en train de charger jquery en mode noConflict en utilisant exiger
require.config({
paths: {
'jquery': 'libs/jquery-req',
underscore: 'libs/underscore',
backbone: 'libs/backbone'
},
shim: {
jquery: {
init: function() {
console.log('jq init');
var jq = this.jQuery.noConflict(true);
jq.support.cors = true;
return jq;
},
exports: '$'
},
backbone: {
deps: ['underscore', 'jquery'],
init: function() {
console.log('b init');
},
exports: 'Backbone'
},
underscore: {
exports: '_'
}
}
});
et de l'utiliser comme ça:
define([
'jquery',
'underscore',
'backbone'
], function(jq, _, Backbone) {
console.log(jq);
var initialize = function() {
// Router.initialize();
};
return {
initialize: initialize
};
});
malheureusement, il semble cale.jquery.init fonction n'est jamais appelée. Quelqu'un peut-il m'aider à comprendre pourquoi? Ce qui est étrange, quand je renomme jquery -> jquery-reg puis il semble fonctionner, mais il doit changer de dépendance définis dans tous les fichiers.
OriginalL'auteur mrok | 2013-04-09
Vous devez vous connecter pour publier un commentaire.
Créer les suivants noconflict.js module:
Puis, dans votre besoin.config ajouter:
La version de jQuery noconflict sera remis à tous les modules (sauf noconflict). Se débarrasser de l'jQuery cale.
Veuillez noter que le fait d'aller le chemin de garder jQuery hors de l'espace de noms global vous empêcher d'utiliser toutes les plugins jQuery non-AMD sans modification de ces plug-ins AMD modules. La cale n'a rien de magique à prendre avantage de cette configuration. Il en va de même pour la non-AMD module, vous pourriez shim qui dépend de quelque chose que vous avez fait "pure" d'AMD.
return $.noConflict();
, qui va garder la fenêtre.jQuery. De cette façon, les plugins jQuery doit toutes les charges fines (comme des cales d'épaisseur seulement, je crois) et vous pouvez toujours avoir une propre $ (pour d'autres bibliothèques à utiliser).Modifié pour refléter cette option.
J'ai besoin d'ajouter
delete window.$
après la$.noConflict()
appeler parce qu'il a été mis àundefined
et de moka serait comme le rapport mondial de fuite.CARTOGRAPHIE des MODULES À UTILISER NOCONFLICT à partir de requirejs site
OriginalL'auteur neverfox
J'utilise celui-ci:
Puis dans mon application j'utilise locales étendues à définir jquery exemple. Dans le cas ci-dessous $ est jquery, mais il peut être aussi autre chose.
Il n'est pas. Testé pour être sûr: "Uncaught ReferenceError: $ n'est pas défini
Je ne pense pas qu'il y est une façon de charger jquery sans ajouter $ à portée globale. Mon cas est que j'ai déjà chargé jquery1.4.2 et je voudrais utiliser la dernière version (chargé par besoin) en aucun conflit mode. Chris, j'ai essayé votre code, et il est $ chargé dans la portée globale - donc, je n'ai aucune idée de comment vous êtes-vous '$ n'est pas défini " peut-être que vous avez essayé de l'utiliser avant de vous chargé? github.com/mrok/require
Vous pouvez ne jamais obtenir undefined, car $ est utilisé par certains des débogueurs, je crois, même si jQuery n'est pas chargé. Vous verrez quelque chose comme
function $() { [Command Line API] }
mais ce n'est pas jQuery.OriginalL'auteur Chris Visser