鍛煉完身體九點到電腦旁,加上整理明天的接口文檔,到現在22:38:10;-_-!!,心累
今天整理下Easyui是如何渲染的;
當我們 1 <input class="easyui-combobox" data-options="...." /> 寫下這段話的時候,在頁面中就會出現combobox控件,其中關鍵的語句是class中的類名easyui-combobx,easyui在頁面加載的時候,都會把整個頁面掃描一遍,把其中出現的easyui的類名就會渲染成Easyui各種控件組件。
這其實是EasyUI掃描的結果,在網頁加載完成后,相當於在$(document).ready()事件中,對整個網頁進行了一次掃描,發現某個input標簽含有class="easyui-datebox"屬性,就做上邊講到那些處理,不僅僅是EasyUI如此,幾乎所有的UI都是這個原理。這其中就有了不得不說的重要知識點:$.parser.parse()
parser,就是解析器的意思,別看他只有那么幾行代碼,jQuery Easyui 能夠根據class就能正常渲染頁面全靠它了。
使用方法:
1 $.parser.parse();// 解析整個頁面 2 $.parser.parse($('#txtName').parent());/ 解析某個具體節點/
注意:為什么要加parent()呢,原因是parser只渲染對象($('#txtBName'))的子孫元素,並不包括txtBName自身,而它的子孫元素並不包含任何Easyui支持的控件cla根據
根據渲染原理我們就知道如果在一些要禁用控件或者對控件的其他操作的時候一定要注意,對控件的賦值取值操作放在渲染操作后,否則在賦值語句后用了類似的語句.searchbox({'readonly':'true'});(對searchbox控件設置只讀)后會控件的值將丟失,原因就是組件被重新渲染!!
不嗶嗶了,哥哥要睡覺了,頭好痛