Red de conocimiento informático - Material del sitio web - Cómo ejecutar múltiples versiones de jQuery *** en una página

Cómo ejecutar múltiples versiones de jQuery *** en una página

¿Cómo hacer que se ejecuten varios **** jQuery en una página? Por ejemplo, jquery-1.5 y jquery-1.11.

Quizás te preguntes, ¿por qué necesitas almacenar varios datos jQuery en una página al mismo tiempo? ¿No puedo simplemente hacer referencia a la última versión de jQuery?

La respuesta es no. Porque la vida real es muy cruel. Por ejemplo:

Un sitio web existente ya hace referencia a jQuery 1.5 y complementos relacionados. Si actualiza jQuery directamente a la última versión, estos complementos no funcionarán a menos que los actualice todos o espere a que el autor del complemento respectivo publique una versión que admita la última versión de jQuery.

Ahora, si queremos desarrollar un nuevo complemento o escribir código JavaScript basado en jQuery, usar la versión más nueva llevará más tiempo y ahorrará más trabajo.

Pero ¿qué pasa con las versiones anteriores que nunca debes desechar?

El método consiste en hacer que existan múltiples versiones mediante noConflict() de jQuery.

Cuando importamos jQuery, jQuery solo inyecta dos variables en el espacio global de la ventana:

window.$ = window.jQuery = { jQuery object };

Al mismo tiempo, jQuery conserva internamente las versiones antiguas de las referencias a objetos window.$ y window.jQuery. Cuando llamamos:

var $jq = $.noConflict();

window.$ se restaurará, pero window.jQuery sigue siendo jQuery.

Cuando llamamos:

var $jq = $.noConflict(true);

window.$ y window.jQuery se restaurarán.

Por lo tanto, permitir que existan versiones antiguas y nuevas de jQuery **** se puede lograr de esta manera:

console.log($().jquery); // => '1.5.0'

// Ahora puede acceder a la versión 1.11 de jQuery a través de $jq

& lt;scriptrc="myscript.js">

en En myscript.js, puedes acceder a la versión 1.11 de jQuery a través de $jq

Eso es todo

Sin embargo, introducir dos versiones de jQuery arruinará el proceso. page. ¿Qué pasa si alguien no puede entender el código y elimina var $jq = jQuery.noConflict(true)? O, si las dos líneas que importan jQuery se invierten, no se obtendrá la versión correcta de jQuery. p> La mejor manera es mantener la página sin cambios y hacer referencia directa al nuevo archivo js que escribimos:

.

De esta manera, hacemos referencia a la última versión de jQuery en myscript.js, y a la página no le importa si usa jQuery o qué versión usa.

Empiece a escribir una solución nueva y mejor. Primero, determine el cuerpo de myscript.js:

// myscript.js

(function () {

// BEGIN

// TODO: código javascript aquí...

// END

})();

Usar funciones anónimas es una buena práctica, lo hace No contamina las variables globales y elimina el acceso al código externo.

El siguiente paso es incrustar el código jQuery 1.11 directamente:

// myscript.js

(function() {

// COMENZAR

/*! jQuery v1.11.1 */

!function(a,b){"object"==tipo de módulo&& "object"==tipo de módulo.exportaciones .. .

if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k| |(k =...

},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(thi...

var $ = jQuery.noConflict(true);

// TODO: código javascript aquí...

// FIN

}) ();

El código incrustado es, por supuesto, el código comprimido, ***3 líneas, y luego agrega una oración:

var $ = jQuery.noConflict(true);

Tenga en cuenta que $ es una variable local, puede hacer referencia a esta $ en cualquier momento en el código subyacente. No es el mismo objeto que la variable global $ en otras versiones de jQuery en la página. >

El último paso es verificar el protocolo jQuery. Permítanos incrustar el código fuente de jQuery directamente en nuestro propio código JavaScript.