欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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的时候遇到的。


只是想记录遇到的问题哦~