今天在用jQuery写二维码模块的时候,遇到了一个 Uncaught ReferenceError: jQuery is not defined 的异常抛出,检查了一下所需要的js依赖都已经导入了。


引入外部js

<script type="text/javascript" charset="UTF-8" src="js/jquery.qrcode.js"></script>
<script src="js/jquery2.1.4.js"></script>
<script src="js/utf.js"></script>

准备JSON格式的二维码的规格对象

var config = {
    width:200,//值是number类型, 表示的单位是px  必须传递
    height:200,//值是number类型, 表示的单位是px  必须传递
    text:'哈哈哈哈哈哈' //text就表示二维码中存储的数据  必须传递
};

// 调用jQuery选择器

$("#qrcode").qrcode(config);

正常来看应该是能顺利生成二维码的,但是运行的结果却不对。

问题出在哪呢?
众所周知,js执行时是有顺序的,在引入外部js的时候我们是先引入了jquery.qrcode.js,再引入了jquery2.1.4.js。而事实上jquery.qrcode.js的顺利运行要依赖jquery2.1.4.js,所以只要把位置换一下就能顺利跑通,即:

<script type="text/javascript" charset="UTF-8" src="js/jquery2.1.4.js"></script>
<script src="js/jquery.qrcode.js"></script>
<script src="js/utf.js"></script>

更多推荐

【BUG已解决】Uncaught ReferenceError: jQuery is not defined