精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

盤點JavaScript中的事件及事件的三種模型

開發 前端
我們知道在很多編程語言都有事件這個概念,在JavaScript中同樣存在事件,原因也很簡單,我們知道HTML是頁面結構層,相當于人的骨架;

前言

我們知道在很多編程語言都有事件這個概念,在JavaScript中同樣存在事件,原因也很簡單,我們知道HTML是頁面結構層,相當于人的骨架;

CSS是樣式層,相當于人的外形;但是它是靜態的,一個人應該能動,動起來,所以產生了JavaScript;JavaScript就是用來控制頁面元素,與用戶產

生動態交互效果,才構成了如今這豐富多樣化的界面。今天我們就來認識一下js當中的事件;

一、事件相關概念

事件:指用戶的鼠標動作和鍵盤動作,document的load和unloaded,事件被封裝成一個event對象,包含了該事件發生時的所有相關信息(event的屬性)以及可以對事件進行的操作(event的方法)。

  • 比如點擊頁面上一個按鈕,產生的event對象如下:

 以上可以看到是一個MouseEvent對象,包含了一系列屬性,如鼠標點擊的位置等。

  • 敲擊鍵盤時產生的event對象

  • window.onload監聽函數中打印出event對象如下:

注意:Event 類是MouseEvent、KeyboardEvent的父類。

二、事件對象常用屬性和方法

2.1事件定位相關屬性

MouseEvent對象里的屬性,很多帶X/Y,它們都和事件的位置相關。具體包括:x/y、clientX/clientY、pageX/pageY、screenX/screenY、layerX/layerY、offsetX/offsetY 六對;之所以能有這么多是因為各瀏覽器廠商在版本更迭的時候產生了很多不一致:

以移動鼠標為例:

x屬性

Y屬性

功能

x

Y

距瀏覽器可視區域(工具欄除外區域)左/上的距離;

clientX


clientY

距瀏覽器可視區域(工具欄除外區域)左/上的距離(同上);

screenX

screenY

距計算機顯示器左/上的距離,拖動你的瀏覽器窗口位置可以看到變化;

offsetX

offsetY

距有定位屬性的父元素左/上的距離;(不計算邊框)

pageX

pageY

距頁面左/上的距離,它與clientX/clientY的區別是不隨滾動條的位置變化;

layerX

layerY

距有定位屬性的父元素左/上的距離(計算邊框);

之所以有那么多值一樣的情況,就是由于瀏覽器兼容的原因, 針對于瀏覽器對于不同屬性的兼容情況如下所示;(+支持,-不支持)

瀏覽器

offsetX/offsetY

x/y


layerX/layerY

pageX/pageY

clientX/clientY

screenX/screenY

W3C

-

-

-

-

+

+

IE

+

+

-

-

+

+

Firefox

-

-

+

+

+

+

Opera

+

+

-

+

+

+

Safari

+

+

+

+

+

+

chrome

+

+


+

+

+

 說明:詳情可查

https://www.caniuse.com/

2.2其他常用屬性

  • target:發生事件的節點;
  • currentTarget:當前正在處理的事件的節點,在事件捕獲或冒泡階段;
  • timeStamp:事件發生的時間,時間戳。
  • bubbles:事件是否冒泡。
  • cancelable:事件是否可以用preventDefault()方法來取消默認的動作;
  • keyCode:按下的鍵的值;

2.3 event對象的方法

  • event. preventDefault(): 阻止元素默認的行為,如鏈接的跳轉、表單的提交;
  • event. stopPropagation(): 阻止事件冒泡;
  • event.initEvent(): 初始化新事件對象的屬性,自定義事件會用,不常用;
  • event. stopImmediatePropagation(): 可以阻止掉同一事件的其他優先級較低的偵聽器的處理很少使用;

三、事件的三種模型

3.1 原始事件模型(DOM0級)

在原始事件模型中,事件發生后沒有傳播的概念,沒有事件流。事件發生,馬上處理。監聽函數只是元素的一個屬性值,通過指定元素的屬性值來綁定監聽器。書寫方式有兩種:

1.HTML代碼中指定屬性值:

<input type="button" notallow="func1()" />

2.在js代碼中指定屬性值:

document.getElementsByTagName(‘input’)[0].onclick = func1

優點:所有瀏覽器都兼容

缺點:

  • 邏輯與顯示沒有分離;
  • 相同事件的監聽函數只能綁定一個,后綁定的會覆蓋掉前面的,如:a.onclick = func1; a.onclick = func2;將只會執行func2中的內容;
  • 無法通過事件的冒泡、委托等機制完成更多事情;

3.2 IE事件模型

“IE不把該對象傳入事件處理函數,由于在任意時刻只會存在一個事件,所以IE把它作為全局對象window的一個屬性”,用IE8執行了代碼alert(window.event),結果彈出是null,說明該屬性已經定義,只是值為null(與undefined不同),代碼如下;

window.onload = function (){alert(window.event);}


setTimeout(function(){alert(window.event);},2000);

一次彈出【object event】,兩秒后彈出依然是null。由此可見IE是將event對象在處理函數中設為window的屬性,一旦函數執行結束,便被置為null了;

IE的事件模型只有兩步:

  1. 先執行元素的監聽函數,
  2. 然后事件沿著父節點一直冒泡到document。

IE模型下的事件監聽方式比較獨特,綁定監聽函數的方法是:

attachEvent( "eventType","handler");//其中evetType為事件的類型,

如onclick,注意要加’on’。解除事件監聽器的方法是:

detachEvent("eventType","handler" )

IE的事件模型已經可以解決原始模型的三個缺點,但其自己的缺點就是兼容性,只有IE系列瀏覽器才可以這樣寫。

3.2 DOM2事件模型

此模型是W3C制定的標準模型,既然是標準,現代瀏覽器(指IE6~8除外的瀏覽器)都已經遵循這個規范。W3C制定的事件模型中,一次事件的發生包含三個過程:

  1. capturing phase:事件捕獲階段。事件被從document一直向下傳播到目標元素,在這過程中依次檢查經過的節點是否注冊了該事件的監聽函數,若有則執行;
  2. target phase:事件處理階段。事件到達目標元素,執行目標元素的事件處理函數;
  3. bubbling phase:事件冒泡階段。事件從目標元素上升一直到達document,同樣依次檢查經過的節點是否注冊了該事件的監聽函數,有則執行;

所有的事件類型都會經歷captruing phase但是只有部分事件會經歷bubbling phase階段,例如submit事件就不會被冒泡。

標準的事件監聽器綁定:

addEventListener("eventType","handler","true|false");

其中eventType指事件類型。第二個參數是處理函數,第三個即用來指定是否在捕獲階段進行處理,一般設為false來與IE保持一致。

監聽器的解除也類似:

removeEventListner("eventType","handler","true!false");

以上便是事件的三種模型,我們在開發的時候需要兼顧IE與非IE瀏覽器,所以注冊一個監聽器應該這樣寫:

var a = document.getElementById('a');
if(a.attachEvent){
    a.attachEvent('onclick',func);
}
else{
    a.addEventListener('click',func,false);
}

四、總結

本文我們就JavaScript事件做了基本介紹,認識了事件的相關概念,事件的常用屬性和方法,以及事件的三種模型,想要完成復雜的界面動態交互效果,事件的使用至關重要,想要深入了解事件的小伙伴可以參考官方手冊。

http://www.javascriptcn.com/


責任編輯:華軒 來源: 前端進階學習交流
相關推薦

2021-11-11 11:24:54

JavaScript模型事件

2020-11-01 17:10:46

異步事件開發前端

2012-03-26 12:23:25

JavaSwing

2021-08-10 10:14:14

存儲接口存儲設備存儲

2009-06-09 16:53:22

Java Swing處理方法比較

2011-06-16 14:38:18

JavaScript事件委托

2010-07-06 09:59:06

SQL Server事

2023-12-19 16:43:01

2009-06-17 09:48:11

javascript手事件參考

2022-11-30 15:15:48

2021-08-03 10:01:37

JavaScript事件方法

2024-08-02 15:04:14

JavaScript服務器

2024-06-25 12:52:40

JavaScript開發

2021-02-06 11:26:55

Python開發list

2021-02-03 18:05:30

Python方法列表

2023-10-13 00:00:00

Redis模塊空間對象

2022-01-04 16:50:47

JavaScript圖片網站

2021-10-13 09:02:05

Python中文亂碼Python基礎

2016-06-12 10:37:32

云計算私有云公有云

2023-06-12 07:50:45

點贊
收藏

51CTO技術棧公眾號

亚洲精品美女久久久久| 亚洲日本一区二区| 日韩免费视频在线观看| 国产一级淫片久久久片a级| 伊人久久一区| 香港成人在线视频| 五月天久久综合网| 老司机午夜福利视频| 久久亚洲欧洲| 欧美精品videofree1080p| 性色av蜜臀av色欲av| 先锋影音网一区二区| 亚洲国产成人porn| 一区二区精品在线观看| 免费观看黄色av| 日本不卡的三区四区五区| 欧美黄色片在线观看| 免费一级做a爰片久久毛片潮| 4438五月综合| 91久久国产最好的精华液| 国产内射老熟女aaaa| 国产在线观看网站| 国产成人免费视频 | 亚洲综合在线电影| 亚洲精品国产成人久久av盗摄 | 影视亚洲一区二区三区| 亚洲精品中文字| 久久久久久久久久久影视| 电影久久久久久| 五月天激情小说综合| 黄色网zhan| 69视频在线| 久久只精品国产| 国产精品一区二| 国产人妖在线播放| 免费成人性网站| 2020国产精品视频| 日本在线视频中文字幕| 伊人久久大香线蕉综合四虎小说| 亚洲一区999| 久久午夜夜伦鲁鲁片| 日韩一区网站| 91精品国产综合久久久久久久久久| 久久9精品区-无套内射无码| 欧美寡妇性猛交xxx免费| 中文字幕一区三区| 亚洲精品一区国产精品| 国产精品一二三区视频| 久久久99免费| 日韩国产欧美一区| 国产在线网站| 国产亚洲精品aa午夜观看| 欧美极品日韩| 国产三级在线| 国产三级精品视频| 日韩精彩视频| 91精品国产综合久久久久久豆腐| 欧美激情在线一区二区| 日本在线播放不卡| 77777影视视频在线观看| 欧美高清一级片在线观看| 色狠狠久久av五月综合| 阿v免费在线观看| 国产精品久久久久久久岛一牛影视| 天天综合狠狠精品| 日本高清视频在线播放| |精品福利一区二区三区| 9l视频自拍9l视频自拍| 在线你懂的视频| 亚洲一区二区三区四区的| av在线免费观看国产| 看黄在线观看| 欧美在线视频不卡| 亚洲一区二区三区观看| 欧美电影院免费观看| 精品国产一区二区三区忘忧草| 国产高潮失禁喷水爽到抽搐 | 久青草视频在线观看| 亚洲国产国产亚洲一二三| 久久男人资源视频| 樱花视频在线免费观看| 久久成人羞羞网站| 国产精品 日韩| 精品影院一区| 亚洲欧美成人一区二区三区| 成人久久18免费网站麻豆 | 欧美美女喷水视频| 韩国三级丰满少妇高潮| 国产福利一区二区精品秒拍| 亚洲久久久久久久久久| 99久久99久久精品免费| 综合一区av| 欧美一级电影久久| 免费在线观看av的网站| 国产麻豆成人传媒免费观看| 精品欧美一区二区在线观看视频 | 亚洲欧洲av| www.日韩免费| 西西44rtwww国产精品| 麻豆中文一区二区| 国产精品一区二区三区精品| 国产天堂在线| 一区二区三区四区高清精品免费观看 | 亚洲男人影院| 亚洲精品日产aⅴ| 日本一区二区三区在线观看视频| 中文字幕一区在线观看| 国产中文字幕免费观看| www.久久草.com| 亚洲欧美日韩国产中文| 精品99在线观看| 日韩不卡一二三区| 国产精品一区视频网站| 日本蜜桃在线观看| 色综合久久久久久久久久久| 99中文字幕在线| 免费欧美一区| 久久久久久亚洲| 国产一区二区自拍视频| 久久久精品天堂| www.av毛片| 国产精品一区二区三区av| 亚洲人成电影网| 日本三级中文字幕| 国产精品1区2区3区| 亚洲欧美日韩国产yyy| 欧美大胆性生话| 亚洲黄色av女优在线观看| 成熟的女同志hd| 韩国女主播成人在线| 日本亚洲自拍| 成人亚洲欧美| 日韩成人小视频| 日本系列第一页| 国产精品白丝jk黑袜喷水| 一区二区三区四区五区视频| 国精产品一区二区三区有限公司 | 色婷婷狠狠综合| 三级男人添奶爽爽爽视频| 综合一区二区三区| 亚洲www永久成人夜色| 色大18成网站www在线观看| 91福利国产成人精品照片| 极品粉嫩小仙女高潮喷水久久| 国内精品福利| 电影午夜精品一区二区三区 | 欧美韩国日本在线观看| 国产精品久久久久久久久| 国产在线资源| 日本道精品一区二区三区| 蜜桃传媒一区二区亚洲av| 99亚洲精品| 久久综合九色综合网站| 伊人久久精品一区二区三区| 日韩精品亚洲精品| 天堂中文在线网| 国产日韩av一区| 99热手机在线| 日韩午夜电影网| 成人日韩av在线| 超碰个人在线| 精品99一区二区| 国产九色在线播放九色| 99九九99九九九视频精品| 黄色动漫在线免费看| 亚洲最好看的视频| 国产精品美女主播| 黄网页在线观看| 日韩精品一区二区三区老鸭窝 | 亚洲精品日本| 欧美国产一区二区在线| 国产精成人品2018| 超碰日本道色综合久久综合 | gogo大胆日本视频一区| 国产一区二区三区精彩视频 | 天堂网一区二区| 国产精品毛片a∨一区二区三区| 8x8x成人免费视频| 狠狠爱综合网| 欧美三级电影在线播放| 久久青草免费| 欧美激情亚洲自拍| 免费黄色片在线观看| 欧美色倩网站大全免费| 国产高清在线免费观看| 97成人超碰视| 中文av一区二区三区| 欧美91视频| 免费看成人午夜电影| 免费视频观看成人| 久久久免费精品视频| 国产福利在线| 欧美精品一区男女天堂| 国产精品无码粉嫩小泬| 一级中文字幕一区二区| 国产人妻大战黑人20p| 国产麻豆精品在线观看| 欧美黄色一级片视频| 欧美91视频| 视频在线99| 黄色成人美女网站| 91精品久久久久久久久久久久久| 91精品国产黑色瑜伽裤| 日韩中文字幕精品视频| 男人天堂av网| 欧美精品亚洲一区二区在线播放| 日韩xxxxxxxxx| 亚洲天堂av一区| 亚洲激情视频小说| 成人精品gif动图一区| 日本 片 成人 在线| 国产手机视频一区二区 | 国产又黄又粗视频| 不卡视频在线看| 天天av天天操| 青青草伊人久久| 六月婷婷在线视频| 午夜视频一区| 一区二区三区av在线| 国产一区二区三区四区五区| 精品999在线观看| 91精品入口| 亚洲一区二区自拍| 只有精品亚洲| 国产精品久久久久久久久久小说| 色在线中文字幕| 久久久久久久久久久免费精品| 麻豆视频在线观看免费| 亚洲四色影视在线观看| 四虎在线免费观看| 欧美精品一区二区三区一线天视频 | 国产日韩欧美二区| 亚洲亚洲一区二区三区| 成人乱色短篇合集| 激情中国色综合| 国产精品日韩欧美综合| 桃色一区二区| 国产91色在线|免| 在线成人av观看| 欧洲成人免费aa| 午夜激情在线播放| 97avcom| 在线手机中文字幕| 欧美专区中文字幕| 裤袜国产欧美精品一区| 奇米4444一区二区三区 | 男人天堂av电影| 99国产精品一区| 屁屁影院国产第一页| av成人老司机| 亚洲国产欧美视频| 久久一区二区视频| 最近中文字幕在线mv视频在线| 久久精品一区四区| 久久久视频6r| 国产精品高潮久久久久无| 在线看的片片片免费| 亚洲精品日韩专区silk| 日本老熟俱乐部h0930| 亚洲电影激情视频网站| 欧美不卡视频在线观看| 日韩欧美国产黄色| 人妻中文字幕一区二区三区| 欧美日韩国产区一| 国产免费黄色网址| 日韩精品影音先锋| 香港三日本三级少妇66| 亚洲欧美日韩精品久久奇米色影视| 国产私拍精品| 久久亚洲欧美日韩精品专区| 日本在线视频网址| 欧美一性一乱一交一视频| 成人影院av| 91色p视频在线| 精品视频在线你懂得| 欧美日韩亚洲一区二区三区在线观看 | 欧美日韩亚洲综合一区二区三区激情在线| 欧美美女视频| 97超碰人人爱| 99精品国产99久久久久久福利| 老司机午夜av| 国产一区二区三区蝌蚪| 中文字幕a在线观看| 国产精品网友自拍| 久久精品波多野结衣| 一本色道亚洲精品aⅴ| 国产精品亚洲lv粉色| 亚洲精品99久久久久| 成人免费视频| 久久久久久久久久婷婷| 最新欧美电影| 97人人模人人爽人人喊38tv| 婷婷精品在线| 好吊色视频988gao在线观看| 小嫩嫩精品导航| 国产探花在线观看视频| www日韩大片| 老湿机69福利| 欧美亚洲综合另类| 丰满少妇在线观看bd| 色天天综合狠狠色| 麻豆免费在线| 亚洲一区中文字幕| 国产尤物久久久| 超碰成人免费在线| 国内精品久久久久影院色| 日韩精品电影一区二区| 一个色综合网站| 亚洲一区在线观| 亚洲欧美综合另类中字| 欧美xxxx少妇| 91精品一区二区| 欧美一级精品片在线看| 国产免费黄色av| 成人午夜激情影院| 日韩三级久久久| 欧美在线高清视频| 青青草娱乐在线| 国模吧一区二区| 国内精品视频| 亚洲日本欧美在线| 日日欢夜夜爽一区| 无码人妻aⅴ一区二区三区| 亚洲国产成人高清精品| 国产成人精品亚洲精品色欲| 日韩性生活视频| 99亚洲伊人久久精品影院| 免费精品视频一区| 国产欧美一区二区色老头| 亚洲色图欧美日韩| 亚洲自拍偷拍网站| 午夜久久久久久久久久| 久久伊人91精品综合网站| 精品久久在线| 婷婷五月色综合| 日本vs亚洲vs韩国一区三区| 色无极影院亚洲| 在线观看区一区二| 黄色国产在线| 国产精品高潮呻吟久久av野狼 | 国产亚洲欧洲在线| 亚洲精品中文字幕| 久久久久欧美| 每日更新成人在线视频| 69视频在线观看免费| 色妞www精品视频| 国产一二三区在线视频| 国产精品99一区| 日韩精品二区| 中文字幕1234区| 亚洲欧美另类久久久精品| 精品人妻久久久久一区二区三区 | 亚洲国产一区二区三区在线观看| 菠萝菠萝蜜在线观看| ts人妖另类在线| 一区在线观看| 日韩av一二区| 欧美曰成人黄网| 98在线视频| 亚洲综合视频1区| 亚洲毛片视频| 女人又爽又黄免费女仆| 欧美午夜电影一区| 麻豆视频网站在线观看| 99精彩视频在线观看免费| 亚洲高清毛片| www.色天使| 欧美日韩久久久| 黄色大片在线| 欧美中日韩免费视频| 麻豆国产精品官网| 午夜免费激情视频| 亚洲精品美女在线观看| 免费污视频在线一区| 日韩精品一区二区三区电影| 成人美女在线观看| 欧美男人亚洲天堂| 久久九九免费视频| 久久av国产紧身裤| 亚欧美在线观看| 亚洲成人动漫一区| 国产黄色免费在线观看| 亚洲最大福利网| 久久精品女人天堂| 国产精品久久久精品四季影院| 日韩成人激情视频| 国产成人免费av一区二区午夜| 无码 制服 丝袜 国产 另类| 国产亚洲福利社区一区| www.蜜臀av.com| 国产精品99久久久久久白浆小说| 欧美有码视频| 国产毛片久久久久久久| 日韩一区二区三免费高清| 成人动漫一区| 日韩精品免费一区| 久久婷婷国产综合精品青草| 国产欧美一级片| 国产成人久久精品| 伊人成年综合电影网|