Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';jQuery用户界面看到jQuery了吗?_Javascript_Jquery_Jquery Ui_Loading - Fatal编程技术网

Javascript 为什么';jQuery用户界面看到jQuery了吗?

Javascript 为什么';jQuery用户界面看到jQuery了吗?,javascript,jquery,jquery-ui,loading,Javascript,Jquery,Jquery Ui,Loading,我已经构建了一个JavaScript小部件,它必须能够嵌入任何第三方站点和任何环境中。小部件依赖于jQuery和jQuery UI。我按照中的步骤以负责任的方式添加jQuery——这对于嵌入jQuery非常有用。但当我尝试添加jQueryUI时,它失败了。代码如下: (function(window, document, version, callback) { var j, d; var loaded = false; if (!(j = window.jQuery) || ver

我已经构建了一个JavaScript小部件,它必须能够嵌入任何第三方站点和任何环境中。小部件依赖于jQuery和jQuery UI。我按照中的步骤以负责任的方式添加jQuery——这对于嵌入jQuery非常有用。但当我尝试添加jQueryUI时,它失败了。代码如下:

(function(window, document, version, callback) {
  var j, d;
  var loaded = false;
  if (!(j = window.jQuery) || version > j.fn.jquery || callback(j, loaded)) {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js";
    script.onload = script.onreadystatechange = function() {
        if (!loaded && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
            callback((j = window.jQuery).noConflict(1), loaded = true);
            j(script).remove();
        }
    };
    document.documentElement.childNodes[0].appendChild(script)
  }
})(window, document, "1.3.2", function($, jquery_loaded) {
    $.getScript('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.js', function(){
      console.log('loaded');
    });
});
当我运行这个程序时,我得到了“已加载”的mesage,然后在jquery-ui.js的第15行出现了一个错误,即“$isundefined”。但是,当我使用$.getScript()加载jQuery UI时,$怎么可能是未定义的呢?为什么我在收到错误之前看到消息“已加载”?根据jQuery文档,在加载并执行脚本之前,getScript不应该执行回调


有没有什么方法可以使用这个框架来包含jQuery UI,或者我需要使用像RequireJS这样的脚本加载器来加载所有内容、强制依赖项等?

通过调用
.noConflict(1)
,与
相同。noConflict(true)
,如果要删除jQuery,只需删除
1
。to的
true
参数告诉jQuery不仅要删除
$
,还要删除
window.jQuery
,jQuery用户界面在加载后会尝试使用它


,请参阅控制台中没有错误。

bah!就这样。在FF/Chrome/Safari中完美加载。