亚洲三级在线,国产黄色网址在线观看,www.天天操,污视频在线观看网站

      <menuitem id="xujay"><address id="xujay"></address></menuitem><bdo id="xujay"></bdo>
      <track id="xujay"></track>

      位置: 編程技術 - 正文

      JavaScript事件處理的方式(三種)

      編輯:rootadmin

      推薦整理分享JavaScript事件處理的方式(三種),希望有所幫助,僅作參考,歡迎閱讀內容。

      文章相關熱門搜索詞:,內容如對您有幫助,希望把文章鏈接給更多的朋友!

      最近這段時間因為每天要修改網站,為網站做特效,所以看了很多的js接觸事件,自己只會使用一小部分,有時用的時候也比較混亂,現在系統(tǒng)的整理了一下,特此分享到積木網平臺供大家參考下!

      一、什么是JavaScript事件?

      事件(Event)是JavaScript應用跳動的心臟,也是把所有東西粘在一起的膠水,當我們與瀏覽器中Web頁面進行某些類型的交互時,事件就發(fā)生了。

      事件可能是用戶在某些內容上的點擊、鼠標經過某個特定元素或按下鍵盤上的某些按鍵,事件還可能是Web瀏覽器中發(fā)生的事情,比如說某個Web頁面加載完成,或者是用戶滾動窗口或改變窗口大小。說白了,事件是文檔或瀏覽器中發(fā)生的特定交互瞬間!

      通過使用JavaScript,你可以監(jiān)聽特定事件的發(fā)生,并規(guī)定讓某些事件發(fā)生以對這些事件做出響應。

      二、事件流

      事件流就是描述了頁面中接受事件的順序,在瀏覽器發(fā)展的初期,兩大瀏覽器廠商IE和Netscape互掐,出現了一個坑爹的情況,那就是他們對事件流的解釋出現了兩中截然相反的定義。也就是我們所熟悉的:IE的事件冒泡,Netscape的事件捕獲。先來一張圖,簡要的看下結構:

      1、事件冒泡

      事件冒泡即事件最開始由最具體的元素(文檔中嵌套層次最深的那個節(jié)點)接收,然后逐級向上傳播至最不具體的節(jié)點(文檔)。拿上面的圖來說明,就是當點擊text部分時,先由text處的元素接收,然后逐級傳播至window,即執(zhí)行6-7-8-9-的過程。

      2、事件捕獲

      事件捕獲即事件最早由不太具體的節(jié)點接收,而最具體的節(jié)點最后接收到事件。同理,在上面的模型中,就是點擊text部分時,先由window接收,然后逐級傳播至text元素,即執(zhí)行1-2-3-4-5的過程。

      具體在代碼中怎樣表現呢?后面給出!

      三、Javascript事件處理程序的3種方式

      產生了事件,我們就要去處理他,Javascript事件處理程序主要有3種方式:

      1、HTML事件處理程序

      即我們直接在HTML代碼中添加事件處理程序,如下面這段代碼:

      JavaScript事件處理的方式(三種)

      從上面的代碼中我們可以看出,事件處理是直接嵌套在元素里頭的,這樣有一個毛?。壕褪莌tml代碼和js的耦合性太強,如果哪一天想要改變js中showmsg,那么不但要再js中修改,還需要到html中修改,一兩處的修改我們能接受,但是當你的代碼達到萬行級別的時候,修改起來就需要勞民傷財了,所以,這個方式我們并不推薦使用。

      2、DOM0級事件處理程序

      即為指定對象添加事件處理,看下面的一段代碼:

      從上面的代碼中,我們能看出,相對于HTML事件處理程序,DOM0級事件,html代碼和js代碼的耦合性已經大大降低。但是,聰明的程序員還是不太滿足,期望尋找更簡便的處理方式,下面來看第三種處理方法。

      3、DOM2級事件處理程序

      DOM2也是對特定的對象添加事件處理程序,但是主要涉及到兩個方法,用于處理指定和刪除事件處理程序的操作:addEventListener()和 removeEventListener()。它們都接收三個參數:要處理的事件名、作為事件處理程序的函數和一個布爾值(是否在捕獲階段處理事件),看下面的一段代碼:

      這里我們可以看到,在添加刪除事件處理的時候,最后一種方法更直接,也最簡便。但是馬海祥提醒大家需要注意的是,在刪除事件處理的時候,傳入的參數一定要跟之前的參數一致,否則刪除會失效!

      四、事件冒泡和事件捕獲的流程與區(qū)別

      說到這里,再給大家來一點代碼來說明下事件冒泡和事件捕獲的流程,同時也讓大家能看出二者的區(qū)別:

      運行上面的代碼,點擊子元素的時候,我們會發(fā)現,執(zhí)行的先后順序是:父節(jié)點捕獲--子節(jié)點捕獲--子節(jié)點冒泡--父節(jié)點冒泡。從這個例子中,大家也就明白了,另外,DOM2級事件規(guī)定事件包括三個階段:

      1、事件捕獲階段;

      2、處于目標階段;

      3、事件冒泡階段。

      首先是捕獲,然后處于目標階段(即來到事件的發(fā)出位置),最后才是冒泡,不科學的是,居然木有DOM1級事件處理程序,大家注意下,別鬧出笑話了!

      五、補充

      1. IE事件處理程序也對應有兩個方法:attachEvent()添加事件,detachEvent()刪除事件,這兩個方法接收相同的兩個參數:事件處理程序名稱與事處理函數。這里為什么沒有布爾值呢?因為ie8以及更早的版本只支持事件冒泡,所以最后一個參數默認的相當于false來處理!(支持IE事件處理程序的瀏覽器有IE,opera)。

      2. 事件對象是用來記錄一些事件發(fā)生時的相關信息的對象,但事件對象只有事件發(fā)生時才會產生,并且只能是事件處理函數內部訪問,在所有事件處理函數運行結束后,事件對象就被銷毀!

      以上所述是小編給大家介紹的JavaScript事件處理的方式(三種),希望對大家有所幫助!

      JS中使用apply、bind實現為函數或者類傳入動態(tài)個數的參數 為紀念年沒寫blog,第一篇博文就以這樣一個有趣的竅門開始吧-___-在ES5中,當我們調用一個函數時,如果要傳入的參數是根據其他函數或條件判斷生成

      AngularJS實現textarea記錄只能輸入規(guī)定數量的字符并顯示 AngularJS是一個MV*框架,最適于開發(fā)客戶端的單頁面應用。它不是個功能庫,而是用來開發(fā)動態(tài)網頁的框架。它專注于擴展HTML的功能,提供動態(tài)數據綁定

      Bootstrap表單組件教程詳解 表單常見的元素主要包括:文本輸入框、下拉選擇框、單選框、復選框、文本域、按鈕等。下面是不同的bootstrap版本:LESS:forms.lessSASS:_forms.scssbootstrap僅

      標簽: JavaScript事件處理的方式(三種)

      本文鏈接地址:http://jsrtzm.cn/biancheng/373536.html 轉載請保留說明!

      上一篇:Bootstrap每天必學之工具提示(Tooltip)插件(bootstrap怎么學)

      下一篇:Javascript 基礎---Ajax入門必看(javascript基礎編程)

    1. 國際重復征稅解決方法有
    2. 個稅兩種申報方式哪種合算
    3. 財務軟件進什么費用
    4. 銀行共管賬戶現在可以開設嗎
    5. 去年的虧損今年第一季度可以彌補嗎
    6. 第一次購買稅控盤
    7. 開票個人賬戶的錢怎么查
    8. 介質申報和網絡申報的區(qū)別
    9. 長期負債平均余額怎么算
    10. 公司偷稅漏稅是當事人責任大還是法人責任大
    11. 招標代理公司轉讓
    12. 公司注冊前發(fā)生費用沒有發(fā)票怎么辦
    13. 其他應收款轉入實收資本
    14. 免稅企業(yè)收到增值稅專用發(fā)票咋辦
    15. 用友u8怎樣查詢上個月憑證
    16. 購買設備的增值稅是支出嗎
    17. 研發(fā)設備一次性扣除賬務處理
    18. 學校發(fā)票抬頭類型填企業(yè)還是非企業(yè)
    19. 附加稅沒有計提會計分錄
    20. 金蝶期末調匯怎么生成憑證
    21. 收回代扣社保怎么處理
    22. 員工探親路費報銷交個稅嗎
    23. 旅游門票報銷怎么算
    24. 現代服務業(yè)個數有多少
    25. 發(fā)票未到計提房租費用會計分錄
    26. 無償捐贈增值稅計算公式
    27. linux ssh命令用法
    28. 匯算清繳時研發(fā)費用加計扣除怎么做賬
    29. 企業(yè)所得稅按月或者按季預繳
    30. 其他應付款付款后分錄
    31. php 守護進程
    32. 使用PHP similar text計算兩個字符串相似度
    33. Linux系統(tǒng)中quota磁盤命令的相關使用解析
    34. 政府發(fā)放獎勵金如何入賬
    35. 電腦任務欄消失怎么把它顯示出來
    36. php怎么自學
    37. 承租人對經營租賃和融資租賃會計處理方式
    38. 股票發(fā)行費用怎么處理
    39. php_fileinfo作用
    40. 解決的英文
    41. 扣繳義務人的法律地位
    42. 海關進口增值稅如何入賬
    43. 結轉代銷成本
    44. 保險補償金額的計算
    45. php獲取給定日期函數
    46. 關于出售使用過的東西
    47. php跳轉微信支付
    48. css基礎入門
    49. 拿到領料單如何做賬
    50. 增值稅附加稅有什么
    51. 推廣費的比例
    52. 織夢cms為什么不維護了
    53. 認繳制下入股資產怎么算
    54. 可供出售金融資產新準則叫什么
    55. 稅控服務費減免會計分錄
    56. 銀行電子承兌到期了怎么兌現操作
    57. 計入職工福利費的房租折舊屬于人工成本嗎
    58. 員工請假扣款怎么做分錄
    59. 銷售退款現金流量表
    60. 固定資產暫停使用申請怎么寫
    61. 銀行信用貸款發(fā)放郵件后多久到賬
    62. 進料加工與來料加工
    63. 腳手架租賃費發(fā)票內容開勞務可以嗎
    64. 增值稅稅控系統(tǒng)專用設備費及技術維護費抵扣
    65. 剩余股利政策發(fā)放股利后的年末未分配利潤
    66. 未認證的進項稅額轉出怎么做分錄
    67. Linux虛擬機下mysql 5.7安裝配置方法圖文教程
    68. linux卡屏
    69. 在linux系統(tǒng)中創(chuàng)建用戶賬戶
    70. unity接入安卓sdk
    71. ExtJS4中的requires使用方法示例介紹
    72. opengl怎么學
    73. bootstrap需要學多久
    74. nodejs客戶端框架
    75. python3的urllib
    76. 分析天平
    77. 發(fā)票在國家稅務總局網站查不到能用嗎
    78. 國有企業(yè)租賃經營 河北省
    79. 車船稅每年都是300怎么變成600
    80. 稅控盤如何查詢季度統(tǒng)計
    81. 免責聲明:網站部分圖片文字素材來源于網絡,如有侵權,請及時告知,我們會第一時間刪除,謝謝! 郵箱:opceo@qq.com

      鄂ICP備2023003026號

      網站地圖: 企業(yè)信息 工商信息 財稅知識 網絡常識 編程技術

      友情鏈接: 武漢網站建設