关于 jQuery Easyui异步加载tree的问题解析


Posted in Javascript onDecember 06, 2016

想要实现从本地中加载json文件,通过事件来动态的插入到ul中时,遇到了一小bug

html中代码是这样的

<ul class="easyui-tree" id="tt"></ul>

js中的代码

$(".next-menu:nth-child(1) a").click(function() {
var $IDstr = $(this).attr("id"),
$treeIDNum = parseInt($(this).attr("treeID")),
jsonURL = "json/" + $IDstr + ".json",
node;
addAttr2Tree(jsonURL);
changeImgSrc($treeIDNum); 
});
});
function changeImgSrc(nodeID){
var node = $("#tt").tree('find', nodeID);
if(node){
$("#tt").tree('select', node.target);
}
if (node.attributes) {
$("#img-box").attr("src", node.attributes.url);
}
}
function addAttr2Tree(URL){
$("#tt").tree({
url: URL,
method: "get",
animate: true,
lines: true
});
}

起初是想通过一个按钮的点击事件来动态的加载tree的内容就是如上代码,addAttr2Tree 是用来将点击按钮时对应的本地json数据加到html中的ul标签中, changeImgSrc 是对tree节点的一些选中操作以及图片的加载,但是无论怎么调试,总是会出现一条错误

关于 jQuery Easyui异步加载tree的问题解析 

无法获取attributes属性!!!我反复确认attributes是完整无缺的放在json文件里的而且总是第一次点击按钮时才会出现这种错误,第二次及其以后,这种错误是没有的

后来我就想到,是不是因为json数据动态加载的速度比不上程序代码执行的速度?!

果然不出我所料!easyui中tree自带了一个方法onLoadSuccess 当数据成功加载时,才会执行一些操作
所以

$(".next-menu:nth-child(1) a").click(function() {
var $IDstr = $(this).attr("id"),
$treeIDNum = parseInt($(this).attr("treeID")),
jsonURL = "json/" + $IDstr + ".json",
node;
addAttr2Tree(jsonURL);
$("#tt").tree({
onLoadSuccess: function(){
changeImgSrc($treeIDNum);
}
});
});

代码改成这样就可以了。

以上所述是小编给大家介绍的jQuery Easyui异步加载tree的问题解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
写js时遇到的一些小问题
Dec 06 Javascript
js获取height和width的方法说明
Jan 06 Javascript
javascript:void(0)的作用示例介绍
Oct 28 Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 Javascript
用javascript实现自动输出网页文本
Jul 30 Javascript
js实现4个方向滚动的球
Mar 06 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
Mar 30 Javascript
写给vue新手们的vue渲染页面教程
Sep 01 Javascript
微信小程序基于本地缓存实现点赞功能的方法
Dec 18 Javascript
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 Javascript
Jquery高级应用Deferred对象原理及使用实例
May 28 jQuery
JavaScript之Vue.js【入门基础】
Dec 06 #Javascript
浅析JavaScript中作用域和作用域链
Dec 06 #Javascript
利用JS轻松实现获取表单数据
Dec 06 #Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
Dec 06 #Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
Dec 06 #Javascript
jQuery EasyUI 获取tabs的实例解析
Dec 06 #Javascript
如何防止INPUT按回车自动提交表单FORM
Dec 06 #Javascript
You might like
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
php批量删除操作代码分享
2017/02/26 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
javascript add event remove event
2008/04/07 Javascript
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
vue router返回到指定的路由的场景分析
2020/11/10 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python3中zip()函数使用详解
2018/06/29 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
破解安装Pycharm的方法
2018/10/19 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
如何理解python对象
2020/06/21 Python
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
应用服务器有那些
2012/01/19 面试题
建筑工程技术应届生自荐信
2013/09/27 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
文明单位汇报材料
2014/12/24 职场文书
高中社区服务活动报告
2015/02/05 职场文书