jeasyui 造成$.data(...) is undefined报错的原因及解决
2013-03-19 17:02
127 查看
【错误代码】
var panel = $('<div data-options="tools:\'#tab-tools\'"></div>');panel.addClass('easyui-tabs');panel.addClass('tabs-container');return
panel;
【正确代码】
var panel = $('<div data-options="tools:\'#tab-tools\'"></div>');panel.tabs();
// html渲染方法return panel;
或
// 以下代码纯属理论猜想未经测试var panel = $('<div data-options="tools:\'#tab-tools\'"></div>');panel.tabs();
// html渲染方法panel.addClass('easyui-tabs');$.parser.parse(panel);return panel;
【注解】
1) 添加class='easyui-tabs'并不能直接引起panel.tabs()方法的执行,只有调用$.parser.parse()解析class='easyui-tabs'才会调用panel.tabs()。
2) jeasyui的document.ready()方法中已调用$.parser.parse()方法,所以一般我们在html中写class='easyui-tabs'时不需要再调用$.parser.parse()方法。(通过ajax动态添加的html需要调用$.parser.parse(context)方法才能正常渲染。)
二、使用子类时的bug。
【说明】
如使用propertygrid时会出现“$.data(_44e, "datagrid") is undefined”的报错,就是因为easyui设置data时使用的是propertygrid,调用父类datagrid的方法时获取data使用的是datagrid。这个似乎是easyui的bug,遇到了只能改源码了。
三、代码执行顺序错误。
【说明】
这个问题的根源和第一条其实是一样的,也是没有正常调用html渲染方法。虽然代码上看是正常调用了,但是报错当时渲染方法还没有执行到。
【解决】
把执行顺序弄对了就行。实在不行就用万恶的setTimeout把会报错的代码的执行顺序直接延迟到最后执行。
setTimeout(function(){// 要延后执行的代码},0);
四、页面更新代码重复执行。
【说明】
这个问题的根源和第一条还是一样的,虽然正常调用了一次html渲染方法,但是页面又被更新到了执行渲染方法前的状态时,就会报错了。此时应想办法解决代码重复执行的问题。
分类:
EasyUI
相关文章推荐
- jeasyui 造成$.data(...) is undefined报错的原因及解决
- tomcat启动时,没有启动你所配置的项目(原因可能是Eclipse 中的工程builed 失败造成),如何解决~
- org.springframework.dao.InvalidDataAccessApiUsageException 原因和解决
- hadoop中DataNode消失挂掉的原因及解决方法
- Extjs 继承Ext.data.Store不起作用原因分析及解决
- jquery.form附件上传的 $.handleError 、以及 $.httpData报错原因及解决方法
- asp.net中ListView控件动态绑定数据源后,使用DataPager出现错误的原因及解决办法
- 造成win2008 500内部错误不能显示详细错误的原因和解决方法
- 重复格式化namenode造成datanode无法正常启动的解决办法
- error: two or more data types in declaration specifiers原因及解决方法
- error: two or more data types in declaration specifiers原因及解决方法
- VS调试程序_ASSERTE(_CrtIsValidHeapPointer(pUserData))崩溃的原因以及解决方法
- Easy-ui [$.data(_1a8, "panel") is undefined] 解决办法
- 造成imail邮箱能接收不能发送的原因和解决办法
- 【原创】mysql数据库异常:data truncate for column “*” at row *;data too long *。原因,及解决。
- VS2013 MVC 4.0 无法添加服务引用,可以配置,但是无法生成引用类,在对象管理器里查找不到对应类,请问是何原因造成,如何解决
- 如何解决http请求304问题,304的原因很可能是缓存造成的。
- javaWeb开发中关于eclipse等ide重新部署或重启项目等原因造成上传文件丢失问题解决方案
- hadoop中datanode消失挂掉的原因及解决方法(1)
- iOS用SegmentController来切换tableView的时候 reloadData会造成数据重复创建 解决办法