问题
I am trying to load a script with a function like:
$.getScript('/js/mymy.js').done(function(){
if(readCookie('my_cookie', 'yes')){
/* do sth here */
}
});
or
$.getScript('/js/mymy.js',function(){
if(readCookie('my_cookie', 'yes')){
/* do sth here */
}
});
where "readCookie" is defined in mymy.js but i get an error "readCookie" is not defined...
Here 1 & 2 is where i have got help how to do, but it does not work... Any Ideas?
i do use jQuery 1.8.0
mymy.js does contain a function:
jQuery(document).ready(function() {
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
/** There is sth much more here **/
...
/** There is sth much more here **/
});
回答1:
readCookie
is undefined because readCookie
is not global; it is visible only within the document.ready
function scope in mymy.js
.
Make the function global by removing the document.ready
wrapper.
回答2:
From the docs:
The callback is fired once the script has been loaded but not necessarily executed.
In other words, you cannot rely on the success
function to be called explicitly after the loaded script is executed, e.g., its functions put into the global scope.
After your edit (which IMO should have been what you posted first) you actually have two issues; as written it's scoped only inside JQ's DOM-ready function.)
来源:https://stackoverflow.com/questions/29014968/jquery-getscript-fails-to-load-function