无法获得blueimp / jQuery.fileupload插件

时间:2012-04-09 20:49:12

标签: jquery file-upload cross-domain

尝试使用此jQuery插件进行跨域图片上传jQuery.fileupload

我认为该插件使用了require.js,我已经将其包含在内,因为我使用它为我的页面加载javascript代码。 该插件似乎并不要求我包含require.js,但是当我测试我的页面时,我得到了 这个错误

  

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

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

4 个答案:

答案 0 :(得分:12)

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

只需确保按正确顺序添加required files

<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>

答案 1 :(得分: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(这必须是最后一个要包含的内容)

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

define(
'jquery'
function($){
   // use $.fileupload here
})