Así que estoy desarrollando en una plataforma que inyecta jQuery-1.2.6 cada vez que se carga una página. Desarrollé mi página para usar jQuery-1.4.2, por lo que cuando se carga mi página hay 2 instancias de jQuery en mi página.

Para evitar cualquier conflicto, he incluido la siguiente línea en mi archivo JS que está fuera de mi página:

var mc$ = jQuery.noConflict();
jQuery(function($)

Todo parece estar funcionando si uso mc $ para donde se usó originalmente $.

Recibo un error en Firebug e IE que no sé cómo resolver.

Dentro de un archivo que se inyecta en la plataforma cuando se carga mi página, el desarrollador ha hecho:

 $(document).ready(function() {

Y el error en Firebug dice: '$ no es una función'.

Este error solo comenzó a aparecer una vez que hice el cambio de:

var mc$ = jQuery.noConflict();

Estoy pensando que al crear la variable mc $, algo rompió con la llamada $ (documento) del desarrollador ... Si es así, no sé cómo resolver esto y, de lo contrario, espero que haya una solución que pueda implementar para proporcionar la funcionalidad al archivo inyectado del desarrollador.

¡Gracias!

3
Mark 5 jun. 2011 a las 02:59

3 respuestas

La mejor respuesta

Un pedido de llamada en su sección <head> debe ser el siguiente:

  1. jQuery library №1;
  2. no hay conflicto por ello;
  3. Biblioteca jQuery №2.

.noConflict() puede verse así:

<script type="text/javascript">var mc$ = jQuery.noConflict();</script>

Y después de usar esta sintaxis en los scripts:

mc$('#container').height();
2
Webars 15 sep. 2011 a las 06:59

Puede encontrar útil esta respuesta: jquery noConflict no funciona solo en IE8

0
Community 23 may. 2017 a las 10:34

La causa raíz es cargar dos instancias de jQuery en una página. Por lo que parece, la instancia original (1.2.6) de jQuery también se está desvinculando de la variable global $.

Al mirar http://api.jquery.com/jQuery.noConflict/, podría intente proporcionar un parámetro adicional a la llamada jQuery.noConflict () para indicar también la descarga de jQuery, ya que parece que su instancia de 1.4.2 se está cargando antes de 1.2.6.

Más allá de eso, sin probar ese escenario exacto, no sé qué otra ayuda ofrecer :)

4
Geoff Adams 4 jun. 2011 a las 23:54