国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

活用事件觸發對象動作

2024-07-21 02:04:04
字體:
來源:轉載
供稿:網友

現在基本上我很少在對象里面寫事情觸發行為了,因為感覺那樣做相同的對象代碼利用率太低,容易導致代碼冗余.
從學習W3C標準以來,對于代碼我好像養成了一種怪癖,能統一復用的,就不會多寫一點東西,這樣前臺頁面代碼看起來會清爽很多,而效率也會成直線上升.

下面來講一下最近一個項目里面比較有代表性的東西.
(實例可以查看這里http://www.pplive.com/zh-cn/view.html)

<script type="text/javascript">
<!--
//定義鼠標觸發事件的范圍
function findOutDiv(thisEvent){
//利用循環查找符合CSS樣式名字的對象
 while(thisEvent.className != "piccell"){
//如果這個對象的標簽名字是HTML就停止,然后讓事件對象不存在,用做后面的判斷
  if(thisEvent.tagName == "HTML"){
   thisEvent = false;
   break;
  }else{
//否則繼續下個對象,即他的父對象
   thisEvent = thisEvent.parentNode
  }
 }
//返回事件對象,如果事件對象不存在返回假
 return thisEvent;
}
//利用鼠標在對象移動屬性作為時間觸發行為
document.onmouseover = function(e){
//這個e是FireFox捕捉事件觸發對象的方法
 if(!e)e = window.event;
//定義Event給于鼠標觸發對象的實體,即符合標準并可以控制的對象
//target為FF專用,srcElement為IE專用
 var Event = e.target?e.target:e.srcElement
//定義可控制的對象,調用鼠標觸發事件范圍所返回的對象
 var thisEvent = findOutDiv(Event)
//如果對象存在就繼續
 if(thisEvent){
//給對象定義CSS樣式
  thisEvent.style.border = "2px solid #7A99D2";
  thisEvent.style.background = "#D2E4FC";
 }
}
//同上,利用鼠標在對象移出作為時間觸發行為
document.onmouseout = function(e){
 if(!e)e = window.event;
 var Event = e.target?e.target:e.srcElement
 var thisEvent = findOutDiv(Event)
 if(thisEvent){
  thisEvent.style.border = "2px solid #CCC";
  thisEvent.style.background = "#FFF";
 }
}
// -->
</script>

這樣寫的好處顯而易見,可以不用在每個對象中寫觸發動作的行為,極大的節省了代碼,并且JS更有可讀性.
過段時間等我把個性化頁面整理完成后發布出來,讓大家看看利用事件觸發對象動作的好處.
GOOGLE,和微軟的LIVE他的個性化頁面寫的很不錯,所以大家都可以學習一下他們的代碼,這樣對你將來的AJAX應用會有非常大的幫助.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 公安县| 盐亭县| 威远县| 香河县| 佳木斯市| 周宁县| 右玉县| 开江县| 马边| 临漳县| 博湖县| 交口县| 南康市| 兴义市| 凤冈县| 桑日县| 泸水县| 林芝县| 绍兴市| 鄂托克旗| 扎赉特旗| 永福县| 邳州市| 岐山县| 子洲县| 图木舒克市| 安康市| 康保县| 开鲁县| 石楼县| 武安市| 巴马| 陈巴尔虎旗| 屯昌县| 南江县| 五寨县| 应用必备| 南陵县| 文登市| 铜梁县| 类乌齐县|