JS,全局变量,ajax中赋值,在其他闭包里没有拿到值
程序员文章站
2024-01-24 09:13:04
...
<script type="text/javascript">
var nodeList;
$(document).ready(function() {
renderMenu();
alert(JSON.stringify(nodeList));
$.fn.zTree.init($("#treeDemo"), setting, nodeList);
setCheck();
});
function renderMenu() {
$.ajax({
type: "get",
url: "http://192.168.0.32:8888/" + "menu/list",
dataType: "json",
async: false,
success: function(data) {
nodeList = new Array();
for(var i = 0; i < data.length; i++) {
var node = new Node();
node.id = data[i].id;
node.pId = data[i].parent_id;
node.name = data[i].name;
node.open = true;
nodeList.push(node);
}
}
});
}
var setting = {
check: {
enable: true
},
data: {
simpleData: {
enable: true
}
}
};
function Node(id, pId, name, open) {
this.id = id;
this.pId = pId;
this.name = name;
this.open = open;
}
function setCheck() {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
type = {
"Y": "ps",
"N": "px"
};
zTree.setting.check.chkboxType = type;
}
</script>
重点就是,
async: false,
ajax请求是发出去,就直接走后面的代码了,不会管success里面的方法,所以没有取到值是因为在使用的时候nodeList的却是还没有值,以上是使用zTree的时候遇到的。只是想记录遇到的问题哦~
上一篇: ajax请求成功,但是return的参数为undefined
下一篇: AJax的异步请求