在尝试分解JS代码时,我已将我的jQuery引导点击事件拖到他们自己的文件中。
所有内容都正确加载但是当尝试从jQuery文件引用我的dojo文件中的函数时,最终结果是“zoomToStreams not defined()”;
是否有一种正确的方法可以将所有内容分解为易于管理的代码,以实现代码可重用性并使不同的库(jQuery,dojo)共存?两者都是通过我文档底部的标签加载的。
// dojo.js
require(["dojo modules",...],function(dojo,...) {
...
function zoomToStream(targetStream) {
...
}
});
// jQuery.js
$(document).ready(function() {
$("#streamSelection li").click(function(e) {
switch (e.target.text) {
case "All Streams":
zoomToStream("all");
break;
case "First Stream";
zoomToStream("1");
break;
...
}
}
});
答案 0 :(得分:1)
将您的第一个代码段转换为您可能需要的jquery代码模块。
dojo.js(这不是你命名你的js文件吗?)
define("zoomToStream",["dojo modules",...], function(dojo,...) {
...
function zoomToStream(targetStream) {
...
}
return zoomToStream;
});
jQuery.js(这真的不是你命名你的js文件吗?)
require(["zoomToStream"],function(zoomToStream) {
$(document).ready(function() {
$("#streamSelection li").click(function(e) {
switch (e.target.text) {
case "All Streams":
zoomToStream("all");
break;
case "First Stream";
zoomToStream("1");
break;
...
}
}
});
});
修改以适合您的文件结构等,对于您的js文件使用这些文件名似乎很奇怪。