Почему мы должны использовать $.noConflict() в jQuery?

Я знаю, что мы используем $.noConflict() для преодоления других конфликтов плагинов. Например, если какой-то новый плагин использует символ $ в качестве переменной, он будет переопределен. Итак, мы используем как ниже

var $j=$.noConflict();

Но, у меня есть сомнения, мы можем заархивировать это, используя сам код ниже, тогда почему $.noConflict(); нужно?

 var $j=$;

Спасибо заранее. Пожалуйста, объясните основные разные

2 ответа

Решение

Здесь вы получили подробную информацию о том, почему:

Многие библиотеки JavaScript используют $ как имя функции или переменной, так же как и jQuery. В случае с jQuery $ - это псевдоним для jQuery, поэтому все функции доступны без использования $. Если вам нужно использовать другую библиотеку JavaScript вместе с jQuery, верните управление $ back другой библиотеке с помощью вызова $.noConflict(). Старые ссылки на $ сохраняются во время инициализации jQuery; noConflict () просто восстанавливает их.

Это от jQuery, и есть еще больше информации: https://api.jquery.com/jquery.noconflict/

Обновить после комментария

Из кода jQuery https://code.jquery.com/jquery-1.10.2.js если вы ищете noConflict ты найдешь

noConflict: function( deep ) {
        if ( window.$ === jQuery ) {
            window.$ = _$;
        }

        if ( deep && window.jQuery === jQuery ) {
            window.jQuery = _jQuery;
        }

        return jQuery;
    },

Проще говоря: это проверяет, является ли глобальным $ или глобальный jQuery уже был использован. В любом случае он вернет jQuery. Так что вы не можете просто сделать var $j=$; причина $ может уже есть конфликты. noConflict() это то, что вам нужно.

Если вам нужно использовать другую библиотеку JavaScript вместе с jQuery, верните управление $ back другой библиотеке с помощью вызова $.noConflict (). Этот метод особенно эффективен в сочетании со способностью метода .ready() создавать псевдоним объекта jQuery, поскольку при обратном вызове, передаваемом в .ready(), вы можете использовать $, если хотите, не опасаясь конфликтов позже.

Примеры использования noConflict по-разному

Введите 01 var j = jQuery.noConflict ();

// Do something with jQuery
j( "div p" ).hide();

// Do something with another library's $()
$( "content" ).style.display = "none";

Тип 02

jQuery.noConflict();
(function( $ ) {
  $(function() {
    // More code using $ as alias to jQuery
  });
})(jQuery);
Другие вопросы по тегам