js活用事件觸發(fā)對象動(dòng)作
更新時(shí)間:2008年08月10日 20:12:29 作者:
現(xiàn)在基本上我很少在對象里面寫事情觸發(fā)行為了,因?yàn)楦杏X那樣做相同的對象代碼利用率太低,容易導(dǎo)致代碼冗余.
從學(xué)習(xí)W3C標(biāo)準(zhǔn)以來,對于代碼我好像養(yǎng)成了一種怪癖,能統(tǒng)一復(fù)用的,就不會(huì)多寫一點(diǎn)東西,這樣前臺頁面代碼看起來會(huì)清爽很多,而效率也會(huì)成直線上升.
<script type="text/javascript">
<!--
//定義鼠標(biāo)觸發(fā)事件的范圍
function findOutDiv(thisEvent){
//利用循環(huán)查找符合CSS樣式名字的對象
while(thisEvent.className != "piccell"){
//如果這個(gè)對象的標(biāo)簽名字是HTML就停止,然后讓事件對象不存在,用做后面的判斷
if(thisEvent.tagName == "HTML"){
thisEvent = false;
break;
}else{
//否則繼續(xù)下個(gè)對象,即他的父對象
thisEvent = thisEvent.parentNode
}
}
//返回事件對象,如果事件對象不存在返回假
return thisEvent;
}
//利用鼠標(biāo)在對象移動(dòng)屬性作為時(shí)間觸發(fā)行為
document.onmouseover = function(e){
//這個(gè)e是FireFox捕捉事件觸發(fā)對象的方法
if(!e)e = window.event;
//定義Event給于鼠標(biāo)觸發(fā)對象的實(shí)體,即符合標(biāo)準(zhǔn)并可以控制的對象
//target為FF專用,srcElement為IE專用
var Event = e.target?e.target:e.srcElement
//定義可控制的對象,調(diào)用鼠標(biāo)觸發(fā)事件范圍所返回的對象
var thisEvent = findOutDiv(Event)
//如果對象存在就繼續(xù)
if(thisEvent){
//給對象定義CSS樣式
thisEvent.style.border = "2px solid #7A99D2";
thisEvent.style.background = "#D2E4FC";
}
}
//同上,利用鼠標(biāo)在對象移出作為時(shí)間觸發(fā)行為
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>
這樣寫的好處顯而易見,可以不用在每個(gè)對象中寫觸發(fā)動(dòng)作的行為,極大的節(jié)省了代碼,并且JS更有可讀性.
過段時(shí)間等我把個(gè)性化頁面整理完成后發(fā)布出來,讓大家看看利用事件觸發(fā)對象動(dòng)作的好處.
GOOGLE,和微軟的LIVE他的個(gè)性化頁面寫的很不錯(cuò),所以大家都可以學(xué)習(xí)一下他們的代碼,這樣對你將來的AJAX應(yīng)用會(huì)有非常大的幫助.
復(fù)制代碼 代碼如下:
<script type="text/javascript">
<!--
//定義鼠標(biāo)觸發(fā)事件的范圍
function findOutDiv(thisEvent){
//利用循環(huán)查找符合CSS樣式名字的對象
while(thisEvent.className != "piccell"){
//如果這個(gè)對象的標(biāo)簽名字是HTML就停止,然后讓事件對象不存在,用做后面的判斷
if(thisEvent.tagName == "HTML"){
thisEvent = false;
break;
}else{
//否則繼續(xù)下個(gè)對象,即他的父對象
thisEvent = thisEvent.parentNode
}
}
//返回事件對象,如果事件對象不存在返回假
return thisEvent;
}
//利用鼠標(biāo)在對象移動(dòng)屬性作為時(shí)間觸發(fā)行為
document.onmouseover = function(e){
//這個(gè)e是FireFox捕捉事件觸發(fā)對象的方法
if(!e)e = window.event;
//定義Event給于鼠標(biāo)觸發(fā)對象的實(shí)體,即符合標(biāo)準(zhǔn)并可以控制的對象
//target為FF專用,srcElement為IE專用
var Event = e.target?e.target:e.srcElement
//定義可控制的對象,調(diào)用鼠標(biāo)觸發(fā)事件范圍所返回的對象
var thisEvent = findOutDiv(Event)
//如果對象存在就繼續(xù)
if(thisEvent){
//給對象定義CSS樣式
thisEvent.style.border = "2px solid #7A99D2";
thisEvent.style.background = "#D2E4FC";
}
}
//同上,利用鼠標(biāo)在對象移出作為時(shí)間觸發(fā)行為
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>
這樣寫的好處顯而易見,可以不用在每個(gè)對象中寫觸發(fā)動(dòng)作的行為,極大的節(jié)省了代碼,并且JS更有可讀性.
過段時(shí)間等我把個(gè)性化頁面整理完成后發(fā)布出來,讓大家看看利用事件觸發(fā)對象動(dòng)作的好處.
GOOGLE,和微軟的LIVE他的個(gè)性化頁面寫的很不錯(cuò),所以大家都可以學(xué)習(xí)一下他們的代碼,這樣對你將來的AJAX應(yīng)用會(huì)有非常大的幫助.
您可能感興趣的文章:
- javascript 動(dòng)態(tài)改變onclick事件觸發(fā)函數(shù)代碼
- javascript的事件觸發(fā)器介紹的實(shí)現(xiàn)
- javascript下對于事件、事件流、事件觸發(fā)的順序隨便說說
- javascript 不讓鼠標(biāo)事件觸發(fā)
- js實(shí)現(xiàn)瀏覽器窗口大小被改變時(shí)觸發(fā)事件的方法
- js 觸發(fā)select onchange事件代碼
- js觸發(fā)onchange事件的方法說明
- js獲取事件源及觸發(fā)該事件的對象
- 代碼觸發(fā)js事件(click、change)示例應(yīng)用
- js事件觸發(fā)操作實(shí)例分析
相關(guān)文章
layer.open提交子頁面的form和layedit文本編輯內(nèi)容的方法
今天小編就為大家分享一篇layer.open提交子頁面的form和layedit文本編輯內(nèi)容的方法,具有好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
值得分享和收藏的Bootstrap學(xué)習(xí)教程
這絕對是一套值得分享和大家收藏的Bootstrap學(xué)習(xí)教程,完整的知識體系,系統(tǒng)的學(xué)習(xí)資料,幫助大家開啟Bootstrap學(xué)習(xí)之旅,享受Bootstrap帶給大家的奇妙樂趣2016-05-05
JavaScript使用canvas繪制坐標(biāo)和線
這篇文章主要為大家詳細(xì)介紹了JavaScript使用canvas繪制坐標(biāo)和線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
uni-app常用的幾種頁面跳轉(zhuǎn)方式總結(jié)
uni-app的頁面跳轉(zhuǎn)和小程序和vue很相似,只是方法和標(biāo)簽有所不同,這篇文章主要給大家介紹了關(guān)于uni-app常用的幾種頁面跳轉(zhuǎn)方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
使用iframe window的scroll方法控制iframe頁面滾動(dòng)
在頁面中如何控制內(nèi)嵌的iframe滾動(dòng)呢?方法是使用iframe window的scroll方法,大家可以參考下面的示例2014-03-03
javascript實(shí)現(xiàn)行拖動(dòng)的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)行拖動(dòng)的方法,涉及javascript鼠標(biāo)事件及頁面元素的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05
JS實(shí)現(xiàn)的簡單圖片切換功能示例【測試可用】
這篇文章主要介紹了JS實(shí)現(xiàn)的簡單圖片切換功能,結(jié)合實(shí)例形式分析了javascript結(jié)合時(shí)間函數(shù)定時(shí)觸發(fā)控制圖片的遍歷與切換操作相關(guān)技巧,需要的朋友可以參考下2017-02-02

