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