首頁 web前端 js教程 實例講解javascript註冊事件處理函數_javascript技巧

實例講解javascript註冊事件處理函數_javascript技巧

May 16, 2016 pm 03:20 PM
javascript 事件處理 註冊

事件是javascript的核心內容,它的重要性這裡就不多介紹了。觸發事件之後就需要有事件處理函數去處理,例如我們可以定義當點擊一個按鈕之後,將一個div的背景設為綠色,那麼就先看一下如何實現此效果,程式碼實例如下:

<html> 
<head> 
<meta charset=" utf-8"> 
<title>javascript如何注册事件处理函数</title>
<style type="text/css">
#mydiv{
 width:100px;
 height:100px;
 background-color:red;
}
</style>
<script type="text/javascript"> 
function changebg(){
 var mydiv=document.getElementById("mydiv");
 mydiv.style.backgroundColor="green";
}
</script>
</head>
<body>
 <div id="mydiv"></div>
 <button id="bt">点击查看效果</button> 
</body>
</html>
登入後複製

在上述程式碼中,點擊按鈕就會將div的背景顏色設為綠色,這是因為程式碼為按鈕的onclick事件註冊了事件處理函數,此函數可以將div的背景顏色設為綠色。以下就結合實例簡單介紹如何為物件的事件註冊事件處理函數:
方式一:
直接在HTML程式碼中註冊事件處理函數,也就是直接透過HTML屬性來設定事件處理函數,事件處理函數要執行的程式碼就是HTML的屬性值,在文章的開頭就是使用的方式。優缺點如下:

  • 1.容易理解,使用簡單。
  • 2.各主流瀏覽器都支援此方式。
  • 3.與HTML程式碼混合在一起,使頁面十分的繁雜,不符合表現與內容分離的原則。
  • 4.只能夠在同一個物件註冊一個相同類型的事件處理函數。

方式二:
事件句柄方式,所謂的事件句柄也就是事件處理函數,指定物件的指定事件對應一個事件句柄。使用此種方式註冊事件處理函數,首先要取得物件的引用,然後將事件句柄賦值給物件的對應的事件處理函數屬性即可。其實方式一也是事件句柄方式的一種。
程式碼實例如下:

<html> 
<head> 
<meta charset=" utf-8"> 
<title>javascript如何注册事件处理函数</title>
<style type="text/css">
#mydiv{
 width:100px;
 height:100px;
 background-color:red;
}
</style>
<script type="text/javascript"> 
window.onload=function(){
 var mydiv=document.getElementById("mydiv");
 var bt=document.getElementById("bt");
 bt.onclick=function(){
  mydiv.style.backgroundColor="green";
 }
}
</script>
</head>
<body>
 <div id="mydiv"></div>
 <button id="bt">点击查看效果</button>
</body>
</html>
登入後複製

以上程式碼中,先使用document.getElementById("bt")取得按鈕物件的引用,然後將事件句柄(事件處理函數)賦值給按鈕物件的onclick事件屬性,這樣當點擊按鈕時就會觸發onclick事件,進而執行事件句柄中的程式碼。優缺點如下:

  • 1.簡單容易理解。
  • 2.個瀏覽器都支援。
  • 3.只能夠在同一個物件註冊一個相同類型的事件處理函數。

方式三:
是一種更進階的事件註冊方式,那就是事件監聽器,這種方式解決了在指定物件只能註冊一個指定類型事件的處理函數問題。不過存在一定的相容性問題,以下分別介紹一下:
1).IE瀏覽器:
在IE瀏覽器中可以使用attachEvent()和detachEvent()方法為指定物件註冊事件處理函數和刪除已註冊的事件處理函數。
文法格式如下:
element.attachEvent("onevent",eventListener)
此函數有兩個參數,第一個參數是事件類型的名稱,第二個參數就是要註冊的事件處理函數。
程式碼實例如下:

<html> 
<head> 
<meta charset=" utf-8"> 
<title>javascript如何注册事件处理函数</title>
<style type="text/css">
#mydiv{
 width:100px;
 height:100px;
 background-color:red;
}
</style>
<script type="text/javascript"> 
window.onload=function(){
 var mydiv=document.getElementById("mydiv");
 var bt=document.getElementById("bt");
 
 bt.attachEvent("onclick",changebg);
 
 function changebg(){
  mydiv.style.backgroundColor="green";
 }
}
</script>
</head>
<body>
 <div id="mydiv"></div>
 <button id="bt">点击查看效果</button>
</body>
</html>
登入後複製

以上程式碼使用attachEvent()函數為按鈕註冊onclick事件處理函數,不過只能夠在IE瀏覽器中有效。使用detachEvent()函數可以解除原來註冊的事件處理函數,語法格式如下:
element.detachEvent("onevent",eventListener)
格式和attachEvent()函數式一樣的。
特別說明:第一個參數的必須帶有on,例如點擊事件就要寫成"onclick"。
2).標準瀏覽器:
在標準瀏覽器中(包括IE9和IE9以上瀏覽器),若要使用addEventListener()和removeEventListener()函式註冊和刪除註冊處理函數。
文法格式如下:
element.addEventListener('event', eventListener, useCapture);
此函數有三個參數,第一個參數是事件類型名稱,第二個參數就是要註冊的事件處理函數,第三個函數規定此處理函數是在事件傳遞過程中的捕獲階段被呼叫還是冒泡階段被調用,在預設條件下,此屬性值為false麼也就是在冒泡階段調用事件處理函數。
特別說明:第一個參數不能夠帶有on,例如點擊事件不能寫成"onclick",而要寫成"click"。
程式碼實例如下:

<html> 
<head> 
<meta charset=" utf-8"> 
<title>javascript如何注册事件处理函数</title>
<style type="text/css">
#mydiv{
 width:100px;
 height:100px;
 background-color:red;
}
</style>
<script type="text/javascript"> 
window.onload=function(){
 var mydiv=document.getElementById("mydiv");
 var bt=document.getElementById("bt");
 
 bt.addEventListener("click",changebg);
 
 function changebg(){
  mydiv.style.backgroundColor="green";
 }
}
</script>
</head>
<body>
 <div id="mydiv"></div>
 <button id="bt">点击查看效果</button>
</body>
</html>
登入後複製

以上代码在IE9和IE9以上或者其他标准浏览器中,点击按钮可以将div的背景颜色设置为绿色。使用removeEventListener()函数可以解除原来注册的事件处理函数,语法格式如下:
element.removeEventListener('event', eventListener, useCapture);
格式和addEventListener()函数式一样的。
跨浏览器注册事件处理函数:
只要加个判断语句即可,代码如下:

var EventUtil={
  //注册
  addHandler: function(element, type, handler){
   if (element.addEventListener){
    element.addEventListener(type, handler, false);
   } else if (element.attachEvent){
    element.attachEvent("on" + type, handler);
   } else {
    element["on" + type] = handler;
   }
  },
  //移除注册
  removeHandler: function(element, type, handler){
   if (element.removeEventListener){
    element.removeEventListener(type, handler, false);
   } else if (element.detachEvent){
    element.detachEvent("on" + type, handler);
   } else {
    element["on" + type] = null;
   }
  }       
 };
登入後複製

以上就是本文的详细内容,希望对大家的学习有所帮助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

小紅書怎麼註冊多個帳號?註冊多個帳號會被發現嗎? 小紅書怎麼註冊多個帳號?註冊多個帳號會被發現嗎? Mar 25, 2024 am 09:41 AM

小紅書作為一個集社交和電商於一身的平台,吸引了越來越多的用戶加入。有些用戶希望能夠註冊多個帳號以便更好地體驗和小紅書互動。那麼,小紅書要怎麼註冊多個帳號呢?一、小紅書怎麼註冊多個帳號? 1.使用不同手機號碼註冊目前,小紅書主要採用手機號碼註冊帳號的方式。用戶有時會嘗試購買多個手機號碼卡,並利用它們註冊多個小紅書帳號。但這種做法有一些限制,因為購買多個手機號碼卡比較麻煩且成本較高。 2.使用信箱註冊除了手機號碼,信箱也可以用來註冊小紅書帳號。使用者可以準備多個郵箱地址,然後分別用這些郵箱地址註冊帳號。不過

漫蛙漫畫帳號怎麼註冊 漫蛙漫畫帳號怎麼註冊 Feb 28, 2024 am 08:00 AM

在漫蛙漫畫平台上,有著豐富的漫畫資源,等待大家探索。只要輕鬆進入漫蛙漫畫的官方平台,就能享受各類精彩的漫畫作品。每個小夥伴都能依照自己的喜好,輕鬆找到心儀的漫畫進行閱讀。那麼究竟該如何註冊漫蛙漫畫的官方帳號呢,本站小編就將為大家帶來這篇詳細的教程攻略,希望能幫助到各位有需要的小伙伴們。漫蛙漫畫-官方入口:https://fuw11.cc/mw666漫蛙漫畫app下載地址:https://www.siemens-home.cn/soft/74440.html漫蛙漫畫非大陸地區入口:https: /

怎麼註冊小紅書帳號?註冊小紅書帳號需要什麼? 怎麼註冊小紅書帳號?註冊小紅書帳號需要什麼? Mar 22, 2024 am 10:16 AM

小紅書,一個集生活、娛樂、購物、分享於一體的社交平台,已成為許多年輕人日常生活中不可或缺的一部分。那麼,如何註冊小紅書帳號呢?一、怎麼註冊小紅書帳號? 1.開啟小紅書官網或下載小紅書APP。點擊下方的「註冊」按鈕,您可以選擇不同的註冊方式。目前,小紅書支援手機號碼、信箱以及第三方帳號(如微信、QQ、微博等)進行註冊。 3.填寫相關資料。根據選擇的註冊方式,填寫相應的手機號碼、郵箱或第三方帳號資訊。 4.設定密碼。設定一個強壯的密碼,確保帳號安全。 5.完成驗證。根據提示完成手機驗證或信箱驗證。 6.完善個人

怎麼查手機號碼註冊了哪些東西「詳細講解:手機號碼註冊的APP查詢方法」 怎麼查手機號碼註冊了哪些東西「詳細講解:手機號碼註冊的APP查詢方法」 Feb 07, 2024 am 08:24 AM

不知道大家有沒有這樣一種經歷,手機經常會收到莫名其妙的一些短信,或者是一些網站的註冊信息或者其他的一些驗證信息,實際上可能我們的手機號綁定了很多陌生的網站,我們自己都不知情,那麼今天給大家分享的是教你如何一鍵解除所有陌生的網站綁定。步驟一、打開碼號服務平台這個技巧非常實用。操作步驟如下:開啟微信,點選搜尋框的加號圖標,選擇新增朋友,然後輸入碼號服務平台進行搜尋。我們可以看到有碼號服務平台,當然它是屬於事業單位,是國家信通院推出的,可以幫助大家一鍵解除手機號碼綁定資訊。步驟二、查詢手機是否被標記我

怎麼註冊163信箱 怎麼註冊163信箱 Feb 14, 2024 am 09:20 AM

有的用戶想要使用163郵箱的時候發現自己沒有帳號,那麼這個時候就需要註冊一個帳號了要怎麼操作呢?現在就來看看小編帶來的163郵箱註冊方法吧。 1.先在瀏覽器中搜尋163郵箱官網後在頁面中點選【註冊新帳號】;2、然後選擇【免費信箱】也可以選擇【VIP信箱】;3、最後選擇好之後填寫資料後點選【立即註冊】即可;

小紅書帳號怎麼註冊?它的帳號異常怎麼恢復? 小紅書帳號怎麼註冊?它的帳號異常怎麼恢復? Mar 21, 2024 pm 04:57 PM

小紅書作為全球最受歡迎的生活方式分享平台之一,吸引了大量用戶關注。那麼,如何註冊小紅書帳號呢?本文將為您詳細介紹小紅書帳號的註冊流程,並解答小紅書帳號異常如何復原的問題。一、小紅書帳號怎麼註冊? 1.下載小紅書APP:在手機應用程式商店搜尋並下載小紅書APP,安裝完成後開啟。 2.註冊帳號:開啟小紅書APP後,點選首頁右下角的「我」按鈕,然後選擇「註冊」。 3.填寫註冊資料:依照指示填寫手機號碼、設定密碼、驗證碼等註冊資料。 4.完善個人資料:註冊成功後,根據指示完善個人資料,如姓名、性別、生日等。 5.設定

qooapp帳號怎麼註冊 qooapp帳號怎麼註冊 Mar 19, 2024 pm 08:58 PM

qooapp是能夠下載很多遊戲的軟體,那麼帳號怎麼註冊呢?用戶們需要點擊還沒有通行證,去註冊這個按鍵,然後選擇一種註冊方式就可以了。這篇帳號註冊方法介紹夠告訴大家具體該怎麼操作,以下就是具體的介紹,趕快看看吧。 qooapp帳號怎麼註冊答:點選去註冊,然後選擇一種註冊方式具體方法:1、先進入登入介面後,點選下面的還沒有通行證?現在申請。 2、之後選擇一個自己需要的登入方式。 3、之後就能夠直接使用了。官網註冊:1.開啟網站https://apps.ppaooq.com/,點選右上角註冊。 2、選擇註冊

如何看微信註冊多久了?看微信註冊了多久的方法 如何看微信註冊多久了?看微信註冊了多久的方法 Mar 13, 2024 am 08:52 AM

微信是一款廣受歡迎的社群軟體,功能豐富,用戶眾多。想要查看微信註冊了多久,雖然微信本身並未直接提供查看註冊時間的功能,但我們可以透過一些間接方式來推測。但是這些方法並非絕對準確,因為各種因素都可能影響結果的精確性。若對註冊時間有精確需求,建議聯絡微信客服諮詢。如何看微信註冊多久了?看微信註冊了多久的方法第一種方法是透過查看QQ郵箱。如果你使用QQ登入的微信,那麼註冊成功後,QQ郵箱會收到微信發送的歡迎郵件。你可以在QQ郵箱中搜尋「微信」查看是否有這樣的郵件,進而確定註冊時間。第二種方法是透過檢視

See all articles