/ Spracovanie jQuery.noConflict - javascript, jquery

Spracovanie jQuery.noConflict - javascript, jquery

Zdedili som skripty, ktoré začínajú takto:

var $j = jQuery.noConflict();

Ale nemám tušenie, prečo sa to robí. Chápem, že sa snažíme vyriešiť konflikty, ale ako zistím, aký konflikt sa snaží vyriešiť?

Ak nemôžeme nájsť skutočný konflikt, plánujeme sa vrátiť späť $ namiesto $j a skontrolujte, či sa objaví nejaký konflikt.

odpovede:

1 pre odpoveď č. 1

Hlavný dôvod, prečo používame Jquery.noConflict je, keď existujú iné knižnice javascript, ktoré používajú "$"pre selektor / funkciu / premennú. Ak potrebujete zistiť, kde sa presne stane konflikt, stačí spustiť kód bez zadania Jquery.noConflict a skontrolovať, či výsledok získaný ako výnimka prichádza rovnako ako okno konzoly vývojára.

Ako vždy dokumentácia je kľúčom - https://api.jquery.com/jquery.noconflict/


2 pre odpoveď č. 2

Podľa jQuery docs

Mnoho knižníc jazyka JavaScript používa $ ako funkciu alebonázov premennej, rovnako ako jQuery. V prípade jQuery je $ len alias pre jQuery, takže všetky funkcie sú k dispozícii bez použitia $.Ak potrebujete použiť inú knižnicu JavaScript spolu s jQuery, vráťte kontrolu $ späť do druhej knižnice s volaním $ .noConflict () Staré referencie $ sa ukladajú počas inicializácie jQuery, noConflict () ich jednoducho obnoví.

Ak z nejakého dôvodu existujú dve verzie jQuery(čo nie je odporúčané), volanie $ .conflict (true) z druhej verzie vráti premenné jQuery s globálnym rozsahom na prvé verzia.

Tu je ďalší odkaz dokumentov, ktoré dokážu veľmi dobre vysvetliť

Jednoducho povedané

var $j = jQuery.noConflict();

po tomto zadáme žiadny konfliktný režim, takže teraz môžeme použiť $ j namiesto $ alebo jQuery a tento kód nebude konfliktovať s predchádzajúcimi verziami Jquery alebo knižníc pomocou $ alebo jQuery


1 pre odpoveď č. 3

$ je alias použitý pre jQuery, Ak vo vašej prihláške príde prípad, keď používate $ na iný účel, musíte použiť inú nezrovnateľnú premennú, aby ste predišli konfliktom.

Tiež by mohol existovať ďalší prípad, keď existuje viac ako jedna verzia jQuery ktoré sa používajú vo vašej aplikácii alebo moduloch v rámci vašej žiadosti, čo následne spôsobí konflikty. Takže sa musíte vyhnúť konfliktom pomocou jQuery.noConflict();.

Viac o ňom môžete prečítať jQuery.noConflict