Я успадкував скрипти, які починаються так:
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