/ / Використання jQuery.noConflict - javascript, jquery

Обробка jQuery.noConflict - javascript, jquery

Я успадкував скрипти, які починаються так:

var $j = jQuery.noConflict();

Але я поняття не маю, чому це зроблено. Я розумію, що ми намагаємося вирішити конфлікти, але як я можу визначити, який конфлікт він намагається вирішити?

Якщо ми не можемо знайти фактичний конфлікт, ми плануємо повернутися до цього $ замість $j і подивіться, чи не з'явиться конфлікт.

Відповіді:

1 для відповіді № 1

Головна причина ми використовуємо Jquery.noConflict коли є інші бібліотеки JavaScript, які використовують "$"для селектора / функції / змінної. Якщо вам потрібно знайти, де саме відбувається конфлікт, просто запустіть код, не називаючи Jquery.noConflict, і перевірте, чи не з'являється і вичерпний результат консольного вікна вкладки розробника.

Як завжди, ключовою є документація - https://api.jquery.com/jquery.noconflict/


2 для відповіді № 2

Відповідно до jQuery документів

Багато бібліотек JavaScript використовують $ як функцію абоім'я змінної, як і jQuery. У випадку jQuery, $ - це лише псевдонім для jQuery, тому всі функції доступні без використання $. Якщо вам доведеться використовувати іншу бібліотеку JavaScript разом з jQuery, поверніть повернення $ назад до іншої бібліотеки за допомогою виклику до $ .noConflict (). Старі посилання $ зберігаються під час ініціалізації jQuery; noConflict () просто відновлює їх.

Якщо з якихось причин є дві версії jQueryзавантажений (який не є рекомендується), виклик $ .noConflict (true) з другої версії поверне глобально змінені параметри jQuery першим версія

Ось ще один посилання документів, які можуть дуже добре пояснити

Прості слова

var $j = jQuery.noConflict();

після цього ми не вводять у жодному конфліктному режимі, тому тепер ми можемо використовувати $ j замість $ або jQuery, і цей код не буде конфліктувати з попередніми версіями Jquery або бібліотеками за допомогою $ або jQuery


1 для відповіді № 3

$ це псевдонім, який використовується для jQuery. Якщо у вашій заявці виникає справа, коли ви використовуєте $ для деяких інших цілей, то вам потрібно використовувати деяку іншу не конфліктуючу змінну, щоб запобігти конфліктам.

Крім того, може бути інший випадок, коли існує декілька версій jQuery що використовуються у вашій програмі або модулях у межах вашої програми, що призведе до конфліктів. Тому ви повинні уникати конфліктів, використовуючи jQuery.noConflict();.

Ви можете прочитати більше про це jQuery.noConflict