require基础使用、加载解决思路、下载(含require-css)
1、app.js(记得所有的JS都要做映射,包括外部引用的,比如:地图、微信等API的JS)
require.config({
paths: {
"require-css": "require.css",
"jquery": "jquery.min",
"form": "jquery.form",
"layer": "layer/layer",
"xinda": "xinda.js",
"upload": "xinda/uploader",
"weixin": "http://res.wx.qq.com/open/js/jweixin-1.0.0.js",
"map": "http://webapi.amap.com/maps?v=1.3&key=xxxxxxxxxxxxxxxxxxxxx"
},
shim: {
"*": {
deps: ["require-css", "css!../css/base.css"]
},
"form": {
deps: ["jquery"]
},
"layer": {
deps: ["jquery"]
}
}
});
require(["jquery", "layer"], function() {
$(function() {
typeof(init) == "function" ? init(): console.log("no init function");
});
});2、HTML页面代码(头部)
<script data-main="static/default/js/app" src="static/default/js/require.js" defer async="true"></script>
3、HTML代码(底部)
<script>
var marker, map;
function addMarker(lat, lng) {
if (marker) {
marker.setMap(null);
marker = null;
}
marker = new AMap.Marker({
icon: "http://webapi.amap.com/theme/v1.3/markers/n/mark_r.png",
position: [lng, lat]
});
marker.setMap(map);
}
window.init = function() {
//地图
require(["map"], function() {
//地图初始化
if (!map) {
map = new AMap.Map("allmap", {
resizeEnable: true,
zoom: 15
});
}
//设置中心点
//var area = $("#area").val();
map.setCity("汉中");
//描点事件
map.on('click', function(e) {
var lng = e.lnglat.getLng(),
lat = e.lnglat.getLat();
$('#map_annotation').val(lng + "," + lat);
$("input[name='biz[map_lng]']").val(lng);
$("input[name='biz[map_lat]']").val(lat);
addMarker(lat, lng);
});
}, function(err) {
console.log(err);
});
}
</script>具体文件,根据具体项目调整,关键思路是init()函数,先在app.js预加载,页面中所有的JS,通过init()函数执行,如果不存在,就不去执行了。
好吧,最后是下载地址了:require.zip

