一、屬性控制
屬性是用來標(biāo)識(shí)一個(gè)對(duì)象或是一組對(duì)象的狀態(tài),比如Radio的Checked表示的是當(dāng)前單選按鈕是否被選中。
如果我們選中一個(gè)單選按鈕時(shí)想顯示一個(gè)文本框,即 “當(dāng)選中單選按鈕時(shí)顯示文本框”,但大多數(shù)情況下我們并不是這樣處理,更多的是通過:
事件(onclick, onkeydown,…) ---> 判斷當(dāng)前狀態(tài)(Checked是否為True) ---> 調(diào)用相應(yīng)的Function(顯示或隱藏文本框)
這樣的處理方法非常被動(dòng),我們要為每一個(gè)事件加上相同的代碼來實(shí)現(xiàn)最終的目的,很有可能的是在Coding過程中的忽略的某些事件(比如onkeypress, onkeydown等),并且程序的擴(kuò)展性不強(qiáng)。
對(duì)于一個(gè)屬性,特別是狀態(tài)屬性來說,它應(yīng)當(dāng)起到的是一個(gè)命令的作用,就像是CEO告訴你現(xiàn)在要去做什么,但這件事如何去做,用什么方法去做,這應(yīng)當(dāng)由你自己去決定。
因此,對(duì)于屬性的操作應(yīng)該盡量是 控制器:事件或其它Function ---> 設(shè)置屬性 處理器:屬性改變時(shí) ---> 調(diào)用處理器(判斷屬性的狀態(tài),做出相應(yīng)的處理) 通過屬性為分界線,我們把它分為了控制和處理兩個(gè)部分,這樣在整個(gè)屬性處理流程中靈活性會(huì)增加很多。
那我們應(yīng)該如何來實(shí)現(xiàn)這樣的想法呢?
1. onpropertychange
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
2. Htc 在HTC中實(shí)現(xiàn)很容易,Microsoft已經(jīng)做好了相應(yīng)的接口,直接使用property元素的get和put方法就行了。
3. 自定義 我們需要做一個(gè)屬性控制器就能做到這一點(diǎn),如: function controlAttribute(對(duì)象,屬性,設(shè)置的值) { 對(duì)象.屬性 = 設(shè)置的值 調(diào)用 對(duì)象.綁定在屬性變化事件的函數(shù)(屬性) }
所有的屬性設(shè)置通過屬性控制器去執(zhí)行,這樣就能做到和onpropertychange或是HTC一樣的效果了。
出處:藍(lán)色理想
責(zé)任編輯:紅色黑客
上一頁(yè) 下一頁(yè) Dhtml 屬性編程之原創(chuàng)筆記 [2]
◎進(jìn)入論壇網(wǎng)頁(yè)制作、網(wǎng)站綜合版塊參加討論
|