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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM