本周在作一个文件上传的模块,用的是jQuery File upload 这个插件,须要引用的js以下:javascript
可是打开页面的时候浏览器控制台报错:html
Uncaught TypeError: Object function ( selector, context ) {// The jQuery object is actually just the init constructor 'enhanced'return new jQuery.fn.init( selector, context, rootjQuery );} has no method 'widget'
java
绞尽脑汁也想不出为何报错,由于代码什么的都是照搬网上的。。。jquery
后来再仔细看了看官网的DEMO源码,看到这几个js引用的顺序,彷佛有点启发了,会不会是引用的顺序错了,致使后面要用的widget的时候还没加载出来?尝试调换一下这几个js的顺序,来作个测试:浏览器
1.把jquery.ui.widget.js放在jquery.fileupload.js的前面ide
结果就不报错了。测试
2.把jquery.ui.widget.js放在jquery.iframe-transport.js的前面:ui
正常,不报错。spa
3.把jquery.ui.widget.js放在jquery-2.0.0.js的前面:插件
提示 Uncaught ReferenceError: jQuery is not defined 这个好理解,毕竟jquery-2.0.0.js才是他们几个js的基础嘛。
总结:这里就发现了javascript和java的区别之一,java中只要引用就行,前后顺序无所谓;而javascript却讲究个前后顺序,得先作好前一步的准备才能进行下一步。