- JScript code
var basePath = 'javascript/'; function include(file) { for (var i = 0; i < file.length; i++) { ...... document.write("<" + tag + attr + link + "></" + tag + ">"); } } include(['jquery-1.4.1.min.js','book.js']); $._newFun= function (content, callback) { ...... };
为什么报$没有定义???明明已经先把jquery-1.4.1.min.js加进来了的,我用firefox看了源代码,没问题
而把$._newFun= function (content, callback) {};放在book.js里却能正常运行
------解决方案--------------------
include 动态加载js
根据楼主描述 include 里的引入是按照顺序来加载的,
['jquery-1.4.1.min.js','book.js'],意思是 加载完了jquery 再加载book
所以 把$._newFun= function (content, callback) {};放在book.js里却能正常运行
如果
include(['jquery-1.4.1.min.js','book.js']);
$._newFun= function (content, callback) {
......
};
这样的话,
执行include的时候,仅仅是请求了2个加载链接,就马上执行$._newFun了,然而这个时候jq还没加载完毕,所以就 $没定义了。
楼主可以搜下 js非阻塞加载
------解决方案--------------------
------解决方案--------------------
浏览器下载时阻塞了,但是你的html输出并没有阻塞
在回调里面执行吧