ajax
闭包
(function (func) {
$.ajax({
url: "/data/get_map",
type: "GET",
dataType: "json", //json格式
success: function (data) {
func(data);
}
});
})(function (data) { //data:ajax返回的数据
})
写成这样格式的原因:
mytestarea.js
var areas=[];
area.js
var areas = [
{"code":"110000","parentCode":"0","level":"1","name":"北京市","latitude":"39.929986","longitude":"116.395645"},
{"code":"110100","parentCode":"110000","level":"2","name":"市辖区","latitude":"","longitude":""},
{"code":"110101","parentCode":"110100","level":"3","name":"东城区","latitude":"40.033162","longitude":"116.239678"},
{"code":"110109","parentCode":"110100","level":"3","name":"门头沟区",]
mytestpage.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script src="/static/js/area.js"></script>
<script src="/static/house/mytestarea.js"></script>
</body>
</html>
此时arae[]里的数据为空,因为js引擎是单线程的,从上往下加载,后加载的会覆盖掉前面相同变量名的变量。
图代码中可能会有很多option变量,为了避免覆盖,要设置js文件的作用域