Núcleo do jQuery - método noConflict()
Exemplo
Use o método noConflict() para atribuir um novo nome à variável jQuery:
var jq=$.noConflict();
Definição e uso
O método noConflict() transfere o controle da variável $ do jQuery.
Este método libera o controle do jQuery sobre a variável $.
Este método também pode ser usado para atribuir um novo nome personalizado à variável jQuery.
Dica:Uso útil quando outras bibliotecas JavaScript usam $ para suas funções.
Sintaxe
jQuery.noConflict(removeAll)
Parâmetros | Descrição |
---|---|
removeAll | Booleano. Indica se deve permitir que a variável jQuery seja completamente restaurada. |
Descrição
Muitas bibliotecas JavaScript usam $ como nome de função ou variável, jQuery não é exceção. No jQuery, $ é apenas um alias do jQuery, portanto, mesmo sem usar $, podemos garantir que todas as funcionalidades sejam garantidas. Se precisarmos usar outra biblioteca JavaScript além do jQuery, podemos devolver o controle para essa biblioteca chamando $.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 usando $ de outra biblioteca </script>
Pode ser combinado com o método .ready() para dar nomes de alias a objetos jQuery, essa técnica é muito eficaz:
<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 usando $ do jQuery }); // Código usando $ de outra biblioteca </script>
Além disso, ao passar o parâmetro true para este método, podemos devolver o controle de $ e jQuery para a biblioteca original. Pense bem antes de usá-lo!
Esta é uma versão mais extrema em comparação com o método noConflict simples, porque redefinirá completamente o jQuery. Geralmente usado em situações extremas, como quando se deseja嵌入 um ambiente altamente conflituente. Aviso: A chamada deste método pode levar a falha de plugins.
Exemplo
Exemplo 1
Mapear o objeto referenciado por $ de volta ao objeto original:
jQuery.noConflict(); jQuery("div p").hide(); // Uso do jQuery $("content").style.display = "none"; // Uso do $() de outras bibliotecas
Exemplo 2
Restabelecer o uso do alias $, então criar e executar uma função, na qual ainda se usa $ como alias do jQuery. Nesta função, o objeto $ original é inválido. Esta função é muito eficaz para a maioria dos plugins que não dependem de outras bibliotecas:
jQuery.noConflict(); (function($) { $(function() { // Código que usa $ como alias do jQuery }); })(jQuery); ... // Código de outras bibliotecas que usam $ como alias
Exemplo 3
Pode combinar jQuery.noConflict() com o ready abreviado para tornar o código mais compacto:
jQuery.noConflict()(function() { // Código que usa jQuery }); ... // Código de outras bibliotecas que usam $ como alias
Exemplo 4
Criar um novo alias para usar o objeto jQuery na próxima biblioteca:
var j = jQuery.noConflict(); j("div p").hide(); // Código baseado no jQuery $("content").style.display = "none"; // Código do $() baseado em outras bibliotecas
Exemplo 5
Mover completamente o jQuery para um novo espaço de nomes:
var dom = {}; dom.query = jQuery.noConflict(true);
Resultados:
dom.query("div p").hide(); // Código novo do jQuery $("content").style.display = "none"; // Código do $() de outra biblioteca jQuery("div > p").hide(); // Outra versão de código do jQuery