jQuery.getScript()无法加载函数

时间:2015-03-12 16:17:07

标签: jquery function undefined getscript

我正在尝试使用如下函数加载脚本:

$.getScript('/js/mymy.js').done(function(){ 
    if(readCookie('my_cookie', 'yes')){
        /* do sth here */
    }
});

$.getScript('/js/mymy.js',function(){   
    if(readCookie('my_cookie', 'yes')){
        /* do sth here */
    }
});

其中" readCookie"在mymy.js中定义,但我得到一个错误" readCookie"没有定义......

此处1& 2是我得到帮助怎么做的地方,但它不起作用......有什么想法吗?

我确实使用jQuery 1.8.0

mymy.js确实包含一个函数:

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 **/
});

2 个答案:

答案 0 :(得分:3)

readCookie未定义,因为readCookie不是全局的;它仅在document.ready中的mymy.js函数范围内可见。

通过删除document.ready包装器使函数变为全局。

答案 1 :(得分:1)

来自the docs

  

一旦脚本加载但未必执行,就会触发回调。

换句话说,在加载的脚本执行后,您不能依赖success函数显式调用,例如,将其函数放入全局范围。


在您编辑之后(IMO应该是您首先发布的内容)您实际上有两个问题;在JQ的DOM就绪函数中编写它的范围。)