javascript - how to namespace jquery to be used throughout my site -


in script below, use javascript load jquery dynamically first. once loaded, want namespace jquery's $ may use name throughout site. instance, instead of calling $('body'). , want call mynamespace('body'). can't namaspacing done correctly. please me on part. thanks..

(function () {      function loadscript(url, callback) {          var script = document.createelement("script")         script.type = "text/javascript";          if (script.readystate) { //ie             script.onreadystatechange = function () {                 if (script.readystate == "loaded" || script.readystate == "complete") {                     script.onreadystatechange = null;                     callback();                 }             };         } else { //others             script.onload = function () {                 callback();             };         }          script.src = url;         document.getelementsbytagname("head")[0].appendchild(script);     }      loadscript("/plugins/system/conversekit/js/jquery.js", function () {           //jquery loaded          alert('jquery loaded');         var ckit = (function($){               var loadscripts = function(){                 var jq = $.noconflict();                 return jq;             }             return {                 conversekitjs : loadscripts// expect return namespaced jquery             };         }          })(jquery);             var js = ckit.conversekitjs(); //function call               //so may use jq instead of $ or jquery             js('body').css('background-color', '#ff0000');       });   })(); 

edit based on answer suggested r.j:

 var mynamespace = jquery.noconflict();         (function(mynamespace) {            //use namespace           mynamespace('body').css('background-color', '#ff0000');//works           mynamespace.getscript("/js/events.js");//in file mynamespace has no effect..         })(mynamespace) 

in events.js

 mynamespace('body').css('background-color', '#ff0000');//doesn't work 

but if add var mynamespace = jquery.noconflict(); on top of page work..this want avoid. instead of declaring in each page, define once in top level.

you can use jquery.noconflict iife

var mynamespace = jquery.noconflict();     (function(mynamespace) {        //use namespace       mynamespace('body').css('background-color', '#ff0000');     })(mynamespace) 

Comments