亚洲一区在线播放-欧美另类极品videosbest使用方法-亚洲成人av在线播放-黄色录像大片-色悠悠av-91欧美日韩-中文字幕偷拍-综合色婷婷一区二区亚洲欧美国产-一级爱爱片-黑人添美女bbb添高潮了-久久青娱乐-黄色一级视屏-美女国产在线-亚洲九九九九-欧美 日韩 国产 成人 在线观看-星空大象mv高清在线观看免费-国产福利合集-好吊色视频在线观看-尤物综合网-18岁成年人网站

三層分離的道理:使用jQuery類庫

2012/3/16 15:37:10   閱讀:2742    發(fā)布者:2742


<input class="text" size=15 type="text" name="search_key" style="color:#bbb;" value="志號、名稱" onfocus="if(this.value=='志號、名稱'){this.value='';this.style.color='#333333';}" onblur="if(this.value==''){this.value='志號、名稱';this.style.color='#bbbbbb';}" />

三層分離道理很簡樸,但是要用例子來說清晰也不易。今天優(yōu)化“搜索”功能時溘然想到,這便是個很典型的示范。改造思路是把行為剝離,由于本站在使用jQuery類庫,因此考慮用jQuery語句來實現(xiàn)。

用文字來描述交互:默認(rèn)淡色#bbbbbb文字提示錄入字段,用戶點擊錄入時顏色會加深#333333正常,但當(dāng)退格刪掉所錄內(nèi)容input內(nèi)值為空時,會恢復(fù)淡色默認(rèn)提示。

產(chǎn)品使用過程中,往往通過定義外層搜索模塊.search來傳遞控制這個錄入框和按鈕的展示效果,如上我還定義了個.text用于同一控制表單的文本錄入框如如斯從三層分離的角度看,目前只做到了結(jié)構(gòu)、表現(xiàn)分離,而結(jié)構(gòu)、行為是綁到一起的,并不符合Web Standard設(shè)計思惟。從頭開始,我一般會選擇如下代碼作為搜索錄入框原型,以前做的HTML原型都用這個:

<script type="text/javascript"/>
jQuery(function($){
$('.search input[name=search_key]').focus(function(){
if($.trim(this.value)==='志號、名稱'){
this.value='';
$(this).addClass('focus');
}
}).blur(function(){
if($.trim(this.value)===''){
this.value='志號、名稱';
$(this).removeClass('focus');
}
});
});
</script/>

到此其實還沒完,還有優(yōu)化余地。比如瀏覽器如果不支持腳本,觸發(fā)錄入框不能自動清空,雖然不至于功能失效,但也會給用戶造成困惑。另外,如果考慮進一步簡化,可以整合或隱藏按鈕回車提交,我考慮“集郵冊”用戶群沒有這么高端。基本優(yōu)化原則,是所有功能表現(xiàn)在同一水準(zhǔn)線,模塊化迭代式前進。