jQuery núcleo - método noConflict()

Ejemplo

Establece un nuevo nombre para la variable jQuery utilizando el método noConflict():

var jq=$.noConflict();

Prueba personal

Definición y uso

El método noConflict() transfiere el control de la variable $ del jQuery.

Este método libera el control de la variable $ sobre jQuery.

Este método también se puede usar para establecer un nombre personalizado para la variable jQuery.

Consejo:Útil cuando otras bibliotecas JavaScript utilizan $ para sus funciones.

Sintaxis

jQuery.noConflict(removeAll)
Parámetros Descripción
removeAll Booleano. Indica si se permite devolver completamente el valor de la variable jQuery.

Descripción

Muchas bibliotecas JavaScript utilizan $ como nombre de función o variable, jQuery no es la excepción. En jQuery, $ es solo un alias de jQuery, por lo que incluso sin usar $ se garantiza toda la funcionalidad. Si necesitamos usar otra biblioteca JavaScript además de jQuery, podemos devolver el control a esta biblioteca llamando a $.noConflict():

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Código para usar $ de otra biblioteca
</script>

Puede combinarse con el método .ready() para dar nombres alternativos a los objetos jQuery, esta técnica es muy efectiva:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Código para usar $ de jQuery
  });
  // Código para usar $ de otra biblioteca
</script>

Además, pasando true como parámetro a este método, podemos devolver el control de $ y jQuery a la biblioteca original. ¡Piensa bien antes de usarlo!

Esta es una versión más extrema del método noConflict, ya que redefine completamente jQuery. Se usa generalmente en situaciones extremas, como cuando se desea incrustar jQuery en un entorno de alta colisión. Nota: Después de llamar a este método, es muy probable que los complementos fallen.

Ejemplo

Ejemplo 1

Mapear el objeto referenciado por $ al objeto original:

jQuery.noConflict();
jQuery("div p").hide(); // Uso de jQuery
$("content").style.display = "none"; // Uso de $() de otra biblioteca

Ejemplo 2

Restaurar el uso del alias $, luego crear y ejecutar una función, en el ámbito de esta función $ sigue siendo el alias de jQuery. El objeto original $ es inválido en esta función. Esta función es muy efectiva para la mayoría de los complementos que no dependen de otras bibliotecas:

jQuery.noConflict();
(function($) { 
  $(function() {
    // Código que usa $ como alias de jQuery
  });
})(jQuery);
... // Código de otras bibliotecas que usan $ como alias

Ejemplo 3

Se puede combinar jQuery.noConflict() con ready para escribir código más compacto:

jQuery.noConflict()(function() {
    // Código que usa jQuery
});
... // Código de otras bibliotecas que usan $ como alias

Ejemplo 4

Crear un alias nuevo para usar jQuery en la próxima biblioteca:

var j = jQuery.noConflict();
j("div p").hide(); // Código basado en jQuery
$("content").style.display = "none"; // Código $() basado en otra biblioteca

Ejemplo 5

Mover completamente jQuery a un nuevo espacio de nombres:

var dom = {};
dom.query = jQuery.noConflict(true);

Resultados:

dom.query("div p").hide(); // Código nuevo de jQuery
$("content").style.display = "none"; // Código de $() de otra biblioteca
jQuery("div > p").hide(); // Otra versión del código de jQuery