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