关于 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 相关文章推荐
JavaScript脚本性能的优化方法
Feb 02 Javascript
Three.js源码阅读笔记(Object3D类)
Dec 27 Javascript
FireBug 调试JS入门教程 如何调试JS
Dec 23 Javascript
jquery教程ajax请求json数据示例
Jan 13 Javascript
javascript常用方法总结
May 14 Javascript
简单实现js浮动框
Dec 13 Javascript
JS实现数组去重方法总结(六种方法)
Jul 14 Javascript
js 倒计时(高效率服务器时间同步)
Sep 12 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
ES6中Class类的静态方法实例小结
Oct 28 Javascript
原生js+css调节音量滑块
Jan 15 Javascript
详解vue3.0 的 Composition API 的一种使用方法
Oct 26 Javascript
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中date()日期函数有关参数整理
2011/07/19 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
js 页面传参数时 参数值含特殊字符的问题
2009/12/13 Javascript
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
node.js基于mongodb的搜索分页示例
2017/01/22 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
VUE 使用中踩过的坑
2018/02/08 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
重学 JS:为啥 await 不能用在 forEach 中详解
2019/04/15 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
2020/08/04 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
海飞丝的广告词
2014/03/20 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
技术入股合作协议书
2016/03/21 职场文书