jquery file upload报错:Cannot read property 'parseMetaData' of undefined

今天有个功能需要上传附件,又开始捡起几个月前已经放弃的jquery file upload 插件。

载入页面的时候,浏览器控制台报错:

Cannot read property 'parseMetaData' of undefined


jquery.fileupload-image.js:268

并且,在选择文件之后,该有的缩略图也没显示出来,只显示文件名:


关于这个parseMetaData的报错问题,在之前的博客中也写过一篇,说这个词是和文件相关的,好像和文件缩略图也有关,报错原因是jquery file upload插件中的几个js文件引用顺序有误有关,看看目前的情况:

<script type="text/javascript" src="js/lib/jquery/jquery.fileupload.js"></script>
......
<script type="text/javascript" src="js/lib/jquery/load-image.min.js"></script>
......
<script type="text/javascript" src="js/lib/jquery/jquery.fileupload-image.js"></script>

报错的代码:

loadImage.parseMetaData(data.files[data.index], function (result) {...
也就是说,jquery.fileupload-image.js中,找到了loadImage,但它还没用 parseMetaData 这个属性。很显然,loadImage是load-image.min.js中的,而jquery.fileupload.js 中会对已经声明的loadImage进行处理,比如设置一些属性什么的。

但是,load-image.min.js 在jquery.fileupload.js 之后出场的话,上述步骤就无法进行了。

因此,尝试调整一下上述js文件的引用顺序,让 load-image.min.js 先出场:

<script type="text/javascript" src="js/lib/jquery/load-image.min.js"></script>
<script type="text/javascript" src="js/lib/jquery/jquery.fileupload.js"></script>
......
<script type="text/javascript" src="js/lib/jquery/jquery.fileupload-image.js"></script>
刷新页面,不报错了,选择文件之后的缩略图也正常显示了:


问题解决。这唐僧大哥的表情一如我现在的心情啊偷笑



这个错误通常是由于没有正确加载所需的 JavaScript 文件导致的。在这种情况下,可能是因为你没有正确加载 jQuery 或 FullCalendar 的 JavaScript 文件。请确保在 HTML 中正确引入了这些文件,并且它们的路径是正确的。 以下是一个正确引入 jQuery 和 FullCalendar 的示例: ```html <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <link href='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.2/fullcalendar.min.css' rel='stylesheet' /> <link href='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.2/fullcalendar.print.min.css' rel='stylesheet' media='print' /> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js'></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js'></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.10.2/fullcalendar.min.js'></script> </head> <body> <div id='calendar'></div> <script> $(document).ready(function() { // page is now ready, initialize the calendar... $('#calendar').fullCalendar({ // put your options and callbacks here }) }); </script> </body> </html> ``` 在这个示例中,我们使用了 jQuery 3.6.0 版本和 FullCalendar 3.10.2 版本。请注意,这里先引入了 jQuery,然后才引入 FullCalendar。这是因为 FullCalendar 是基于 jQuery 开发的,所以必须先加载 jQuery。 如果你仍然遇到这个错误,请检查你的代码并确保你正确引入了所需的 JavaScript 文件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹰信息技术服务部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值