Red de conocimiento informático - Conocimiento informático - Cómo resolver conflictos de nombres $ entre la biblioteca Jquery y otras bibliotecas_jquery

Cómo resolver conflictos de nombres $ entre la biblioteca Jquery y otras bibliotecas_jquery

En primer lugar, debemos saber que en jquery, $ (signo de dólar) es un alias de jquery, es decir, usar $ es lo mismo que usar jquery. En muchos casos, nuestros espacios de nombres entran en conflicto debido a esto. Por ejemplo, $('#xmlas') y JQuery('#xmlas') se escriben de manera diferente, pero en la práctica son exactamente iguales.

La forma más sencilla de resolver este conflicto es nombrarlos de manera diferente o hacer que el código en ejecución piense que son espacios de nombres diferentes.

Primero, importe la biblioteca jQuery antes que otras bibliotecas y use el método jQuery (devolución de llamada) directamente, como por ejemplo:

El código es el siguiente:

prueba ---prototipo

prueba---jQuery

jQuery(function(){ / /

función jQuery.noConflict().

jQuery( "p").click(function(){

alert( jQuery(this).text() );

});

});

$("pp").style.display = 'none'; //Usar prototipo

En segundo lugar, la biblioteca jQuery se importa después de otras bibliotecas y El control de la variable $ se transfiere a otras bibliotecas a través del método jQuery.noConflict(). Método noConflict():

El código es el siguiente:

jQuery.noConflict(); //Dar el control de la variable $ a prototipo.js

jQuery ( function(){//Usar jQuery

jQuery("p").click(function(){

alert( jQuery(this).text() );

});

});

$("pp").style.display = 'none'; > Código 2

El código es el siguiente:

var $j = jQuery.noConflict() //Personaliza el acceso directo como un acceso directo de comparación

$ j( function(){ //Usar jQuery

$j("p").click(function(){

alert( $j(this).text() ) ;

});

});

$("pp").style.display = 'none'; >

Código 3

El código es el siguiente:

jQuery.noConflict(); //Dar el control de la variable $ al prototipo.

js

jQuery(function ($){ //Usa jQuery

$("p").click(function(){ //Quédate con el método $

alerta( $(this).text()

});

});

$("pp"). .display = 'none'; //Usar prototipo

Código 4

El código es el siguiente:

jQuery.noConflict(); variable $ Poder dado a prototipo.js

(function($){ //Definir función anónima y establecer parámetros formales en $

$(function(){ //función anónima dentro $ son jQuery

$("p").click(function(){ //continúa con el método $

alert($(this).text());< / p>

});

});

})(jQuery); //Ejecuta la función anónima y pasa el parámetro real jQuery

$("pp").style.display = 'none'; //Usar prototipo

/********************** ******** ********** ********************************** ****/

jQuery(document).ready(function(){ //cede derechos tan pronto como se carga la página

jQuery.noConflict();

});

Además del método anterior, también podemos usar el segundo método para resolver el problema del conflicto, que también es la solución más tonta pero más efectiva: usar un espacio de nombres personalizado para evitar conflictos.

Por ejemplo, si necesitamos que el nombre del proyecto sea xmlas, entonces nuestro código original:

El código es el siguiente:

$('contentArea' ).show()

Se puede escribir de la siguiente forma:

El código es el siguiente:

XMLAS(' contentArea').show( )

3. En jquery En el código, cuando ocurre un conflicto, podemos usar el símbolo $, lo que requiere que agreguemos el siguiente código en el evento listo:

El código es el siguiente:

jQuery(document).ready(function ($) {

// Puedes usar $ de forma segura

}

); p>

Por supuesto, también puedes abreviarlo a la siguiente forma:

El código es el siguiente:

jQuery(function($){

/// El siguiente es el código que usa $

}) ;

Por lo tanto, el código completo implementado según el primer método es el siguiente:

El código es el siguiente:

// La solución completa para el conflicto entre la biblioteca jquery y otras bibliotecas

$.noConflict()

jQuery( function($) {

// El siguiente es el código para usar $ en el código jquery

});

// El siguiente es tu otro js. código de biblioteca

Por supuesto, también puede simplificar el código completo anterior. El código simplificado es el siguiente:

El código es el siguiente:

//. Código simplificado

$.noConflict()( function(){

// A continuación se muestra su código jquery usando $

}); p>// A continuación se muestra el código para otras bibliotecas