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),否則還是沒用。

浙公網安備 33010602011771號