Puede lograr esto ejecutando su versión de jQuery en no-conflict mode. El modo "Sin conflicto" es la solución típica para que jQuery trabaje en una página con otros marcos como prototype, y también se puede usar aquí, ya que esencialmente espacia el nombre de cada versión de jQuery que cargue.
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Este cambio significa que ninguna de las cosas jQuery que desea utilizar tendrá que ser llamada usando jq13
en lugar de $
, por ejemplo,
jq13("#id").hide();
No es una situación ideal para tener las dos versiones que se ejecutan en la misma página, pero si usted no tiene ninguna alternativa, el método anterior debería permitir el uso de dos versiones diferentes a la vez.
También por curiosidad, ¿qué pasaría si usáramos un control adicional que necesitara hacer referencia a otra versión de jQuery?
Si necesita añadir otra versión de jQuery, que podría ampliar en lo anterior:
<script src="jQuery1.3.js"></script>
<script>
jq13 = jQuery.noConflict(true);
</script>
<script src="jQuery1.3.1.js"></script>
<script>
jq131 = jQuery.noConflict(true);
</script>
<!-- original author's jquery version -->
<script src="jQuery1.2.3.js"></script>
Las variables jq13
y jq131
cada uno serían utilizados para las características específicas de la versión que se requieren.
Es importante que el jQuery utilizado por el desarrollador original se carga última - el desarrollador original probablemente escribió su código bajo el supuesto de que $()
estaría utilizando su versión de jQuery. Si carga otra versión después de la suya, el $
será "capturado" por la última versión que cargue, lo que significaría que el código del desarrollador original se ejecuta en la última versión de la biblioteca, lo que hace que el noConflicts
sea algo redundante.
¿El autor del autor del control no lanzar actualizaciones? ¿O es la versión más nueva incompatible? Es muy extraño que un proveedor comercial de control de terceros haya creado un control que está codificado de forma rígida para una versión particular de un código abierto javascript que se actualiza con frecuencia. – BlackMael
No veo cómo no se atornilla si usa controles de servidor múltiples que insisten en versiones fijas de jQuery. – BlackMael
No todos los autores de complementos actualizan meticulosamente/pueden actualizar su código de forma regular. Yo también enfrenté este problema, pero luego cambié a un equivalente impulsado por la comunidad y actualizado con frecuencia. –