jQuery ядро - метод noConflict()
Пример
Используйте метод noConflict() для назначения нового имени переменной jQuery:
var jq=$.noConflict();
Определение и использование
Метод noConflict() передаёт контроль переменной $ в jQuery.
Этот метод освободит переменную $ от контроля jQuery.
Этот метод также можно использовать для назначения нового пользовательского имени переменной jQuery.
Совет:Полезно использовать этот метод, когда другая библиотека JavaScript использует $ для своих функций.
Синтаксис
jQuery.noConflict(removeAll)
Параметры | Описание |
---|---|
removeAll | Булево значение. Указывает, разрешать или нет полное восстановление переменной jQuery. |
Описание
Многие библиотеки JavaScript используют $ в качестве имени функции или переменной, jQuery не исключение. В jQuery $ является просто.alias для jQuery, поэтому все функциональности могут быть保障, даже если не использовать $. Если нам нужно использовать другую библиотеку JavaScript, кроме jQuery, мы можем вернуть контроль через вызов $.noConflict():
<script type="text/javascript" src="other_lib.js"></script> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $.noConflict(); // Код, использующий $ другой библиотеки </script>
Этот метод можно комбинировать с .ready() для присвоения别名 jQuery объектам,这项技术非常有效:
<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($) { // Код, использующий $ jQuery }); // Код, использующий $ другой библиотеки </script>
Кроме того, передавая параметр true этому методу, мы можем передать контроль над $ и jQuery обратно в исходную библиотеку. Прежде чем использовать, подумайте хорошо!
Это более крайний вариант по сравнению с простым noConflict, так как это полностью перерedefinirovaet jQuery. Это обычно используется в крайних случаях, например, когда вы хотите嵌入 jQuery в высококонфликтную среду. Обратите внимание: после вызова этого метода возможно отключение плагинов.
Пример
Пример 1
Карта $ на объекты оригинального объекта:
jQuery.noConflict(); jQuery("div p").hide(); // Использование jQuery $("content").style.display = "none"; // Использование $ другой библиотеки
Пример 2
Восстановите использование别名 $ и создайте и выполните функцию, в которой $ по-прежнему используется в качестве別ого jQuery. В этой функции оригинальный объект $ неактивен. Эта функция очень эффективна для большинства плагинов, не зависящих от других библиотек:
jQuery.noConflict(); (function($) { $(function() { // Код использования $ в качестве別ого jQuery }); })(jQuery); ... // Код других библиотек, использующих $ в качестве別ого
Пример 3
Можно комбинировать jQuery.noConflict() с сокращенной ready, чтобы сделать код более компактным:
jQuery.noConflict()(function() { // Код использования jQuery }); ... // Код других библиотек, использующих $ в качестве別ого
Пример 4
Создайте новый别名 для использования объекта jQuery в следующих библиотеках:
var j = jQuery.noConflict(); j("div p").hide(); // Код на основе jQuery $("content").style.display = "none"; // Код $() на основе другой библиотеки
Пример 5
Полностью переместите jQuery в новый именованный пространств:
var dom = {}; dom.query = jQuery.noConflict(true);
Результат:
dom.query("div p").hide(); // Новый код jQuery $("content").style.display = "none"; // Код другой библиотеки $() jQuery("div > p").hide(); // Другой вариант кода jQuery