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
Post a Comment