摘要:焦點事件在元素失去焦點時觸發(fā)在元素獲得焦點時觸發(fā)鼠標(biāo)事件鍵盤與文本事件事件在瀏覽器頁面中,點擊鼠標(biāo)右鍵可以調(diào)出上下文菜單。事件用以表示何時應(yīng)該顯示上下文菜單,以便開發(fā)人員取消默認(rèn)的上下文菜單而提供自定義的菜單。
JavaScript與HTML之間的交互是通過事件實現(xiàn)的,事件,就是文檔或者瀏覽器窗口中發(fā)生的一些特定的交互瞬間。可以使用監(jiān)聽器(或者處理程序)來預(yù)定事件,以便事件發(fā)生時執(zhí)行相應(yīng)的代碼。
事件流事件流描述的是從頁面中接受事件的順序
事件冒泡IE的事件流叫做事件冒泡,即事件開始時由最具體的元素(文檔中嵌套層次最深的那個節(jié)點)接受,然后逐級向上傳播到較為不具體的節(jié)點
事件捕獲Netscape的事件流叫做事件捕獲。事件捕獲的思想是不太具體的節(jié)點應(yīng)該更早接受到事件,而最具體的節(jié)點應(yīng)該最后接受到事件,其用意在于在事件到達(dá)預(yù)定目標(biāo)之前就捕獲它。
DOM事件流DOM2級事件規(guī)定的事件流包括三個階段:事件捕獲階段、處于目標(biāo)階段,事件冒泡階段。
事件處理程序 HTML事件處理程序DOM0 級事件處理程序
var btn = document.getElementById("myBtn") btn.onclick = function(){ alert("Clicked") }DOM2 級事件處理程序
var btn = document.getElementById("myBtn") btn.addEventListener("click", function(){ alert("Clicked") }, false)跨瀏覽器的事件處理程序
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 } } }事件對象 事件對象常用的一些屬性和方法
event.preventDefault():取消事件的默認(rèn)方法,例如取消a元素的點擊事件
event.stopPropagation(): 取消事件的進(jìn)一步捕獲或冒泡
event.target : 事件的目標(biāo)(觸發(fā)事件的真實目標(biāo))
事件類型 UI事件load事件:當(dāng)頁面完全加載后再window上面觸發(fā),當(dāng)所有框架都加載完畢后再框架集上觸發(fā),當(dāng)圖像加載完畢時再元素上觸發(fā)
unload事件:當(dāng)頁面完全卸載后再window上觸發(fā)
select事件:當(dāng)用戶選擇文本框(input和textarea)中的一或多個字符時觸發(fā)
resize事件:當(dāng)窗口或者框架的大小變化時在window上面觸發(fā)
scroll事件:當(dāng)用戶滾動帶滾動條的元素中的內(nèi)容時,在該元素上觸發(fā)。
焦點事件blur:在元素失去焦點時觸發(fā)
focus:在元素獲得焦點時觸發(fā)
鼠標(biāo)事件click
dbclick
mousedown
mouseup
鍵盤與文本事件keydown
keypress
keyup
...
contextmenu事件在瀏覽器頁面中,點擊鼠標(biāo)右鍵可以調(diào)出上下文菜單。contextmenu事件用以表示何時應(yīng)該顯示上下文菜單,以便開發(fā)人員取消默認(rèn)的上下文菜單而提供自定義的菜單。
為某一元素設(shè)置contextmenu事件處理程序,在事件處理程序中調(diào)用event.preventDefault()方法,就可以在該元素上阻止上下文菜單的出現(xiàn)。
使整個頁面都阻止上下文菜單的出現(xiàn)
document.body.addEventListener("contextmenu", function(event){ event.preventDefault() })事件委托 事件代理
假設(shè)現(xiàn)在要處理多個具有并列關(guān)系元素的click事件,當(dāng)點擊這些元素中的任何一個元素,則事件一定會通過冒泡的方式,冒泡到他的上層的父節(jié)點元素然后一直冒到window,所以這個時候就可以在他的上層元素中添加事件處理程序,來統(tǒng)一處理這些事件,在處理的過程中可以通過獲取target來知道是點擊的哪個具體的元素。這種方式就稱之為事件委托。
在JavaScript中,添加到頁面上的事件處理程序數(shù)量將直接關(guān)系到頁面的整體運行性能,因為需要不斷的與dom節(jié)點進(jìn)行交互,會延長整個頁面的交互就緒時間,而使用事件委托則可以大大減少對dom節(jié)點的訪問
為每個子節(jié)點都添加事件處理程序,會造成內(nèi)存空間的浪費
新添加的子元素不需要添加被委托事件的處理程序
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/87058.html
摘要:組件事件響應(yīng)在構(gòu)建虛擬的同時,還構(gòu)建了自己的事件系統(tǒng)且所有事件對象和規(guī)范保持一致。的事件系統(tǒng)和瀏覽器事件系統(tǒng)相比,主要增加了兩個特性事件代理和事件自動綁定。 React組件事件響應(yīng) React在構(gòu)建虛擬DOM的同時,還構(gòu)建了自己的事件系統(tǒng);且所有事件對象和W3C規(guī)范保持一致。 React的事件系統(tǒng)和瀏覽器事件系統(tǒng)相比,主要增加了兩個特性:事件代理、和事件自動綁定。 1、事件代理 ...
摘要:取消事件的默認(rèn)行為。阻止事件的派發(fā)包括了捕獲和冒泡阻止同一個事件的其他監(jiān)聽函數(shù)被調(diào)用。 事件模型 DOM0 級事件模型 -沒有事件流,這種方式兼容所有瀏覽器 // 方式一 將事件直接通過屬性綁定在元素上 / 方式二 獲取到頁面元素后,通過 onclick 等事件,將觸發(fā)的方法指定為元素的事件 var btn = document.getElementById(btn) btn....
摘要:指定事件處理程序指定事件處理程序主要有兩種方式級事件處理程序級事件處理程序。添加事件處理程序注意這里是哦或移除事件處理程序使用移除事件處理程序的條件與方法相同必須提供相同的參數(shù),從而添加的匿名函數(shù)也無法被移除。 今天看書又看到事件,遂決定小總結(jié)一下~ JavaScript與HTML之間的交互是通過事件實現(xiàn)的。事件,就是文檔或瀏覽器窗口中發(fā)生的一些特定的交互瞬間。可以使用監(jiān)聽器(事件處...
摘要:指定事件處理程序指定事件處理程序主要有兩種方式級事件處理程序級事件處理程序。添加事件處理程序注意這里是哦或移除事件處理程序使用移除事件處理程序的條件與方法相同必須提供相同的參數(shù),從而添加的匿名函數(shù)也無法被移除。 今天看書又看到事件,遂決定小總結(jié)一下~ JavaScript與HTML之間的交互是通過事件實現(xiàn)的。事件,就是文檔或瀏覽器窗口中發(fā)生的一些特定的交互瞬間。可以使用監(jiān)聽器(事件處...
摘要:處于目標(biāo)階段事件在上發(fā)生并處理。冒泡階段事件又傳播回文檔。不支持捕獲事件的。總結(jié)二使用事件委托新添加的元素還會有之前的事件。事件對象在觸發(fā)某個事件時,會產(chǎn)生一個事件對象。 js 是采用異步事件驅(qū)動的機(jī)制來響應(yīng)用戶操作的,也就是說當(dāng)用戶對某個html元素進(jìn)行操作的時候,會產(chǎn)生一個事件,該事件會驅(qū)動某些函數(shù)來處理。事件源:產(chǎn)生事件的地方(html元素,窗口,其他等等);事件:鼠標(biāo)事件,鍵盤...
閱讀 1833·2021-11-25 09:43
閱讀 1335·2021-11-22 15:08
閱讀 3735·2021-11-22 09:34
閱讀 3225·2021-09-04 16:40
閱讀 3002·2021-09-04 16:40
閱讀 542·2019-08-30 15:54
閱讀 1335·2019-08-29 17:19
閱讀 1752·2019-08-28 18:13