Používam noConflict () pre svoj zdrojový kód, ako je tento, pretože som mal veľa problémov so zahrnutím duplicitných jquery.js z iných zdrojových kódov do svojho programu:
var $ m = jQuery.noConflict ();
$ M.getJSON (........
Problém je, že keď zavolám noConflict (), $ nebude fungovať. Viem, že môžem zmeniť $ JQuery, aby som to vyriešil. ale od ostatných máme veľa vlastných kódov a nie je možné zmeniť všetky zdrojové kódy.
existuje spôsob, ako to napraviť? Skúsil som to, ale nefungoval:
var $ = jQuery.noConflict ();
odpovede:
0 pre odpoveď č. 1Ak máte prístup k inému kódu, zabalte ho do uzáveru IIFE, ktorý sa viaže jQuery
na parameter s názvom $
:
(function($) {
...
})(jQuery);
Ak urobíš nie mať prístup k inému kódu, môžete skúsiť dočasne nastaviť $
a ukážte na svoju inštanciu jQuery „bez konfliktu“:
var _tmp = window.$; // save old value
window.$ = $m; // or window.$ = window.jQuery
// invoke and/or load other code here
...
window.$ = _tmp; // restore previous value
3 pre odpoveď č. 2
Použite a funkčný výraz.
(function ($) {
// code using $ for jQuery
}(jQuerysVariable));