当您想要在本地加载json文件并通过事件将它们动态插入ul时,您会遇到一个小错误
html中的代码是这样的
ul class=' easui-tree ' id=' TT '/uljs中的代码
$('.next-menu : th-child(1)a’)。单击(function() {var $IDstr=$(this))。attr('id '),$treeIDNum=parseInt($(this)。attr('treeID ')),jsonURL='json/' $IDstr '。json ',节点;addattr 2 tree(JSonurl);changeImgSrc($ treidnum);});});函数changeImgSrc(nodeID){ var node=$(' # TT ')。树(' find ',nodeID);if(node){$('#tt ')。tree('select ',node . target);} if(node . attributes){ $(' # img-box ')。attr('src ',node . attributes . URL);} }函数addAttr2Tree(URL){$('#tt ')。tree({url: URL,method: 'get ',animate: true,line : true });}首先我想通过一个按钮的click事件动态加载tree的内容,就是上面的代码。addAttr2Tree用于在点击按钮时将相应的本地json数据添加到html中的ul标签中,changeImgSrc用于选择树节点并加载图片,但无论如何调试,总会出现错误
无法获取属性属性!我已经反复确认,属性完全放在json文件中,并且第一次单击按钮时总是会出现此错误,第二次及以后不会出现此错误
后来我想,是不是因为json数据动态加载的速度跟程序代码执行的速度不匹配?
果然!easyui中的Tree附带了一个onLoadSuccess方法,它只会在数据成功加载时执行一些操作,所以
$('.next-menu : th-child(1)a’)。单击(function() {var $IDstr=$(this))。attr('id '),$treeIDNum=parseInt($(this)。attr('treeID ')),jsonURL='json/' $IDstr '。json ',节点;addattr 2 tree(JSonurl);$('#tt ')。tree({ onloadsuccess : function(){ changeImgSrc($ treidnum);}});});像这样修改代码。
以上是边肖介绍的jQuery Easyui对树的异步加载的分析。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!