7

我正在尝试使用这个 jQuery 插件进行跨域图像上传jQuery.fileupload

我认为该插件使用 require.js,我已经包含了它,因为我使用它为我的页面加载 javascript 代码。该插件似乎不需要我包含require.js,但是当我测试我的页面时出现此错误

未捕获的错误:不匹配的匿名定义()模块:函数($,未定义){ http://requirejs.org/docs/errors.html#mismatch

有人可以指出我正确的方向吗

4

4 回答 4

12

你不需要使用 Requirejs 来使用 jQuery 文件上传。

只需确保以正确的顺序包含所需的文件:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already included -->
<script src="js/vendor/jquery.ui.widget.js"></script>
<!-- The Iframe Transport is required for browsers without support for XHR file uploads -->
<script src="js/jquery.iframe-transport.js"></script>
<!-- The basic File Upload plugin -->
<script src="js/jquery.fileupload.js"></script>
<script>
$(function () {
    $('#fileupload').fileupload({
        // your options
    });
});
</script>
于 2013-07-03T17:47:30.937 回答
7

我很高兴我在这里并不孤单。这个问题花了我几个小时,这是给你的答案,

这就是加载这些 JavaScript 文件的顺序。您必须按以下顺序包含文件,否则它将不起作用。

  • jquery-min.js
  • jquery.ui.widget.js
  • jquery.iframe-transport.js
  • jquery.fileupload.js
  • jquery.fileupload-ip.js
  • jquery.fileupload-ui.js
  • require-min.js(这必须是最后一个被包含的)
于 2013-03-24T14:08:19.280 回答
0

这可能是函数名称之间的冲突,请尝试 jQuery.noConflict()。或 RequireJS 优化器。

http://requirejs.org/docs/optimization.html http://api.jquery.com/jQuery.noConflict/

于 2012-04-09T20:58:15.153 回答
0

<script>您很可能会收到此错误,因为您正在使用标准标记加载包含您的 define() 规则的 JavaScript 文件。

如果你想让 require 工作,你需要使用 require 提供的依赖框架来加载文件,也就是说,通过从代码的其他部分访问它:

define(
'jquery'
function($){
   // use $.fileupload here
})
于 2013-01-07T03:59:24.430 回答