paths - Utilice requirejs y jquery, sin destruir jQuery global?
requirejs paths cdn (3)
Varias versiones de jQuery en una página son malas. Deja de piratear y actualiza jQuery o usa la versión anterior.
En cuanto a mantener $
prueba segura
(function($) {
// requirejs inclusion block for loading
}(jQuery.noConflict(true));
Si pasa true
a .noConflict
, reemplazará la antigua variable jQuery
y no la destruirá globalmente.
Esto significa que puedes pasarlo en silencio. Di que tienes
<script src="jquery-1.2">
<script src="jquery-1.5">
Luego, usar el código anterior pondría los $
1.2 y jQuery
nuevamente en el espacio global y le daría los 1.5 jQuery como $
locales en su cierre
Nuevamente, les recomiendo a AGAINTS que usen varias versiones porque es un desastre y una pesadilla de mantenimiento.
Si usa 1.5, también puede usar .sub
para permitirle extender jQuery
localmente sin dañar el jQuery
global.
Estoy usando requirejs por primera vez en un proyecto. Estoy trabajando en un entorno que ya tiene una gran cantidad de Javascript, y estoy buscando formas claras de introducir mi propio código.
El problema que tengo es que parece que no puedo encontrar un módulo de jQuery que pueda cargar que no obstruya jQuery existente.
Me sorprendió que incluso require-jquery.js presente una versión global de jQuery. ¿Hay una manera de cargar jQuery como un módulo sin introducir ninguna global?
cargue el script jQuery y luego use var myJ = jQuery.noConflict();
o cualquier variable de acceso directo que desee
jQuery 1.7 admite la carga de AMD. Pero, el truco es evitar un conflicto de nombres de módulos, ya que jQuery codifica su propio nombre de módulo como ''jquery''. Si está definiendo otro módulo como ''jquery'' (por ejemplo, en la propiedad ''paths'' en su configuración requirejs), causará dicho conflicto.
Para cargar jQuery en el ámbito de aplicación de requirejs, defina un módulo, como ''jquery-loader'' y cuando quiera cargar jQuery, hágalo a través de ''jquery-loader'':
define([''path/to/jquery.min''], function () {
return jQuery.noConflict(true);
});
requirejs ''guardará en caché'' su referencia a jQuery para que noConflict solo se ejecute la primera vez que se cargue jquery-loader.