easyui报错“Cannot read poperty 'options' of undefined”问题解决方案之一

别逼逼了,我要看解决方法

问题产生原因

最近在项目中使用jquery easyui做页面。其中有个优化问题,我是将原本由jsp通过jstl标签生成的页面改成js通过dom去延迟生成了。
但是js生成的代码在执行过程中报错“Cannot read poperty 'options' of undefined”。
本来的jstl生成的页面不报错,但是js操作生成的代码报错,而且是其中部分页面报错。

问题发现

最终我发现报错的页面都是带有时间的页面,也就是说我使用如下代码生成的。

    var parentDiv = $("#parentDiv");
    var timeInput = document.createElement("input");
    timeInput.className = "easyui-datebox";//easyui日期插件,就是这个地方导致的报错
    timeInput.id = "aaa";
    parentDiv.appendChild(timeInput);

问题原因就是js生成的代码要用到easyui的class样式,这时候就会报错。
因为jquery函数执行了类似如下代码:

    var dateboxInput = $.data(input, "datebox");
    var opts = dateboxInput.options; 

jquery认为这是个datebox类型的数据,但是去解析却得到了undefined。

解决方法

解决方案就是在你加了class的标签的父级标签,加这么一行代码:$.parser.parse(parentDiv);,加了这一句以后eayui就会重新加载一遍这一块代码,样式和功能都会加上的。
记住一定要在js生成的添加class标签的元素的父级元素上面加$.parser.parse(parentDiv),否则还是没用。

原文地址:https://www.cnblogs.com/Lenbrother/p/10246026.html