jQuery est un module AMD. En plus, c'est un module AMD nommé, ce qui rend super difficile l'utilisation de 2 versions de jQuery sur la même page. (Voir ce http://dvdotsenko.blogspot.com/2011/12/amd-modules-with-named-defines-so-much.html)
Cependant, dans votre cas, vous n'avez pas besoin de 2 versions différentes de jQuery. Vous avez juste besoin d'utiliser jQuery une fois en dehors d'AMD, puis à l'intérieur de l'arborescence de code AMD.
Votre solution est très simple: load require.js AVANT vous chargez jQuery. (Traduction: mettre la balise de script qui charge RequireJS avant la balise de script qui charge jQuery
<script src="require.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
/* Section A - Some code that uses gloabl jQuery */
</script>
<script>
// start the AMD code tree
require(['main'],function(main){
// run code that main module returns.
// Don't know what that may mean in your case.
// example:
main()
})
</script>
Qu'arrive-t-il.
- charges de requirejs et met en place les objets globaux
require
et define
- charges jQuery et il (a) définit toujours global window.jQuery (+ window. $) et (b) si
define
existe et il est de la variété AMD, il se définit comme un module nommé avec un nom spécifique - "jquery" < - exactement cela
- Votre code dépend de jQuery global s'exécute.
- Votre code dépend de l'exécution de jQuery enregistrée par AMD.
3 et 4 utilisent une seule et même instance exacte de jQuery.
Vous devez absolument requérir jQuery en tant que "jquery" Aucune autre chaîne ne vous donnera une instance jQuery.
La seule façon que vous pouvez créer un alias jQuery est en créant un nom distinct qui définissent reconditionne déjà défini module « jquery »:
define(
'my_jquery_yey'
, ['jquery']
, function($){return $}
)
expliquer plus ** require.min.js **, est-ce une autre jquery plugin comme celui ci-dessus: ** 1.8.3/jquery.min.js **? si oui quelle version? – Jai