JavaScript中的事件與異常捕獲詳析
事件處理
【onClick】單擊事件、【onMouseOver】鼠標(biāo)經(jīng)過事件、【onMouseOut】鼠標(biāo)移出事件、【onChange】文本內(nèi)容改變事件、【onSelect】文本被框選事件、【onFoucus】得到光標(biāo)事件、【onBlur】光標(biāo)失去事件、【onLoad】網(wǎng)頁(yè)加載事件(在body標(biāo)簽中添加)、【onUnload】網(wǎng)頁(yè)關(guān)閉事件(在body標(biāo)簽中添加或者使用window.onload=function(){}
)
事件注冊(cè)及監(jiān)聽
1、 DOM0級(jí)事件處理
在標(biāo)簽中添加onClick或其他事件的屬性并賦值為JS的自定義方法名
onClick="dongfun(20)"
兩種方法在事件中得到事件的標(biāo)簽對(duì)象:
<div id="divid" onMouseOver="overbut(this)" onMouseOut="outbut()">東小東</div> <script> //通過參數(shù)傳遞對(duì)象 function overbut(obj){ obj.innerHTML="事件觸發(fā)發(fā),鼠標(biāo)在我的范圍"; } //通過ID查找到對(duì)象 function outbut(){ document.getElementById("divid").innerHTML="再見見"; } </script>
內(nèi)容改變監(jiān)聽:
方法一
<input onChange="this.style.backgroundColor='red'">
方法二
<input id="inid" onChange="inputbut(this)"> <script> function inputbut(obj){ obj.style.backgroundColor="green";//更改樣式 } </script>
2、 DOM1級(jí)事件處理
通過標(biāo)簽或者ID尋找到對(duì)象,進(jìn)行事件監(jiān)聽,一個(gè)事件只能對(duì)應(yīng)一個(gè)事件處理函數(shù),在HTML中不用進(jìn)行注冊(cè)
function dongfunx(){ alert("東小東彈框"); } //找到對(duì)象 var h1objx=document.getElementsByTagName("h1")[0]; //注冊(cè)事件 h1objx.onclick=dongfunx; //清除事件 h1objx.onclick=null;
3、 DOM2級(jí)事件處理
通過標(biāo)簽或者ID尋找到對(duì)象,進(jìn)行事件監(jiān)聽,一個(gè)事件只能對(duì)應(yīng)多個(gè)事件處理函數(shù),在HTML中不用進(jìn)行注冊(cè)
//通過ID找到標(biāo)簽對(duì)象 divobjx=document.getElementById("divid"); //添加監(jiān)聽事件,可以添加多個(gè)相同或者不同的事件 //參數(shù)(事件名,處理函數(shù)名),其中事件名是普通事件中去掉“on”前綴 divobjx.addEventListener("click",onck1); divobjx.addEventListener("click",onck2); //事件處理函數(shù) function onck1(){ alert("----- onck1 -----"); } function onck2(){ alert("----- onck2 -----"); } //移除點(diǎn)擊事件 divobjx.removeEventListener("click",onck1);
匿名方法實(shí)現(xiàn)
divobjx=document.getElementById("divid"); divobjx.addEventListener("click",function(){ //執(zhí)行操作內(nèi)容 alert("----------"); });
補(bǔ)充:
阻止HTML的默認(rèn)事件
<a rel="external nofollow" >跳轉(zhuǎn)</a> <script> function dongfunx(eventx){ eventx.preventDefault();//阻止默認(rèn)事件,不進(jìn)行跳轉(zhuǎn) } //找到對(duì)象 var aobjx=document.getElementsByTagName("a")[0]; //注冊(cè)事件 aobjx.onclick=dongfunx; </script>
頁(yè)面加載完畢監(jiān)聽:
window.onload=function(){ alert("頁(yè)面加載完畢"); }
異常捕獲
如果程序執(zhí)行時(shí)遇到異常且未進(jìn)行異常捕獲,則程序?qū)⒔K止執(zhí)行,如果有異常捕獲,則可以繼續(xù)執(zhí)行異常以下的代碼。
捕獲所有異常:
try{ //alert(jj);//未定義變量異常 throw("東小東異常");//手動(dòng)拋出異常,參數(shù)為異常內(nèi)容 }catch(e){ alert("捕獲的錯(cuò)誤:"+e); }
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
JavaScript限制在客戶區(qū)可見范圍的拖拽(解決scrollLeft和scrollTop的問題)(2)
這篇文章主要介紹了JavaScript限制在客戶區(qū)可見范圍的拖拽,解決scrollLeft和scrollTop的問題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05JavaScript設(shè)計(jì)模式之策略模式實(shí)例
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之策略模式實(shí)例,本文分析了Jquery源碼并給出了自己的實(shí)現(xiàn),需要的朋友可以參考下2014-10-10微信小程序?qū)崿F(xiàn)的一鍵撥號(hào)功能示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)的一鍵撥號(hào)功能,結(jié)合實(shí)例形式分析了微信小程序使用wx.makePhoneCall實(shí)現(xiàn)撥打電話功能相關(guān)操作技巧,需要的朋友可以參考下2019-04-04javascript實(shí)現(xiàn)移動(dòng)端觸屏拖拽功能
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)移動(dòng)端觸屏拖拽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07jsvascript圖像處理—(計(jì)算機(jī)視覺應(yīng)用)圖像金字塔
上一篇文章,我們講解了邊緣梯度計(jì)算函數(shù),這篇文章我們來了解圖像金字塔;圖像金字塔被廣泛用于計(jì)算機(jī)視覺應(yīng)用中;圖像金字塔是一個(gè)圖像集合,集合中所有的圖像都源于同一個(gè)原始圖像,而且是通過對(duì)原始圖像連續(xù)降采樣獲得的2013-01-01JavaScript定時(shí)器常見用法實(shí)例分析
這篇文章主要介紹了JavaScript定時(shí)器常見用法,結(jié)合實(shí)例形式分析了JavaScript定時(shí)器常見功能、應(yīng)用及相關(guān)操作技巧,需要的朋友可以參考下2019-11-11javascript設(shè)計(jì)模式 – 解釋器模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 解釋器模式,結(jié)合實(shí)例形式分析了javascript解釋器模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04怎樣用Javascript實(shí)現(xiàn)策略模式
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之策略模式,想學(xué)習(xí)設(shè)計(jì)模式的同學(xué),一定要看一下2021-04-04